遅延式

"遅延式" は、すぐには評価されず、結果が必要なときに評価される式です。 これは、コードのパフォーマンスを向上させるのに役立ちます。

構文

let identifier = lazy ( expression )

解説

前の構文では、expression は結果が必要な場合にのみ評価されるコードであり、identifier は結果を格納する値です。 値は Lazy<'T> 型であり、'T に使用される実際の型は、式の結果から決定されます。

遅延式を使用すると、式の実行を、結果が必要な場合のみに制限することで、パフォーマンスを向上させることができます。

式を強制的に実行するには、メソッド Force を呼び出します。 Force を使用すると、実行が一度だけ行われます。 その後で Force を呼び出すと、同じ結果が返されますが、コードは実行されません。

次のコードは、遅延式の使用方法と Force の使用方法を示しています。 このコードでは、result の型は Lazy<int> で、Force メソッドは int を返します。

let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())

Lazy 型ではない遅延評価は、シーケンスにも使用されます。 詳細については、シーケンスにするページをご覧ください。

関連項目