延迟表达式 是未立即计算的表达式,而是在需要时计算结果。 这有助于提高代码的性能。
语法
let identifier = lazy ( expression )
注解
在前面的语法中, 表达式 是仅在需要结果时计算的代码, 标识符 是存储结果的值。 值的类型 Lazy<'T>
,其中用于 'T
的实际类型是根据表达式的结果确定的。
延迟表达式使你能够通过将表达式的执行限制为仅需要结果的情况来提高性能。
若要强制执行表达式,请调用该方法 Force
。
Force
导致执行只执行一次。 后续调用以 Force
返回相同的结果,但不执行任何代码。
下面的代码演示了懒惰表达式的使用和用法 Force
。 在此代码中,类型result
为,该方法Force
返回一个 int
Lazy<int>
。
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
延迟计算(而不是 Lazy
类型)也用于序列。 有关详细信息,请参阅 序列。