延迟计算 (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#)

请参见

参考

LazyExtensions 模块

其他资源

F# 语言参考