延迟表达式
延迟表达式是指不会立即开始而要等到需要结果时才进行的表达式。 这可以帮助提升代码的性能。
语法
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
是类型)也用于序列。 有关详细信息,请参阅序列。