共用方式為


延遲表達式

延遲表達式 是不會立即評估的表達式,而是在需要時評估結果。 這有助於改善程式代碼的效能。

語法

let identifier = lazy ( expression )

備註

在上一個語法中, expression 是只有在需要結果時才會評估的程序代碼,而 identifier 是儲存結果的值。 值的類型為 Lazy<'T>,其中所使用的 'T 實際型別會從表達式的結果決定。

延遲表達式可讓您藉由將表達式的執行限制為僅需要結果的情況,來改善效能。

若要強制執行表示式,您可以呼叫 方法 ForceForce 只會執行一次執行。 後續呼叫以傳 Force 回相同的結果,但不會執行任何程序代碼。

下列程式代碼說明使用延遲表示式和使用 Force。 在這裡程式代碼中,的型 result 別為 Lazy<int>,而 Force 方法會傳 int回 。

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

延遲評估,但不是 Lazy 型別,也會用於序列。 如需詳細資訊,請參閱 時序

Formatting

對於多行延遲運算式,將左括號放在與關鍵字相同的 lazy 行上,並將運算式本文縮排一級:

let expensiveCalculation =
    lazy (
        let step1 = performStep1()
        let step2 = performStep2 step1
        step2 * 2
    )

如需格式化延遲運算式的詳細資訊,請參閱 F# 格式設定指南

另請參閱