延遲運算式
「延遲運算式」是不會立即評估,而是在需要結果時才會評估的運算式。 這有助於改善您程式碼的效能。
語法
let identifier = lazy ( expression )
備註
在先前的語法中,「運算式」是只有在需要結果時才會評估的程式碼,而「識別項」是儲存結果的值。 此值的類型為 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
類型) 也可用於序列。 如需詳細資訊,請參閱序列。
另請參閱
- F# 語言參考
- LazyExtensions 模組 (英文)