延遲運算 (F#)
「延遲計算」(Lazy Computation) 是不立即評估而是在實際需要結果時才會評估的計算。這有助於提升程式碼的效能。
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 型別) 也可用於序列。如需詳細資訊,請參閱序列 (F#)。