遅延式 は、すぐに評価されるのではなく、結果が必要になったときに評価される式です。 これにより、コードのパフォーマンスを向上させることができます。
構文
let identifier = lazy ( expression )
注釈
前の構文では、 式 は結果が必要な場合にのみ評価されるコードであり、 識別子 は結果を格納する値です。 値の型は Lazy<'T> で、式の結果から 'T に使用される実際の型が決定されます。
遅延式を使用すると、式の実行を結果が必要な状況のみに制限することで、パフォーマンスを向上させることができます。
式を強制的に実行するには、メソッド Forceを呼び出します。
Force は、実行が 1 回だけ実行されるようにします。
Forceの後続の呼び出しでは同じ結果が返されますが、コードは実行されません。
次のコードは、遅延式の使用と Forceの使用を示しています。 このコードでは、 result の型が Lazy<int>され、 Force メソッドは intを返します。
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
遅延評価は、 Lazy 型ではなく、シーケンスにも使用されます。 詳細については、「 シーケンス」を参照してください。
Formatting
複数行の遅延式の場合は、式本体が 1 レベルインデントされた状態で、 lazy キーワードと同じ行に開始かっこを配置します。
let expensiveCalculation =
lazy (
let step1 = performStep1()
let step2 = performStep2 step1
step2 * 2
)
遅延式の書式設定の詳細については、 F# の書式設定ガイドを参照してください。
こちらも参照ください
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET