延迟计算 (F#)
“延迟计算”是指那些不会立即开始而要等到需要结果时才进行的计算。这样可有助于提高代码的性能。
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#)。