Отложенные выражения

Отложенные выражения — это выражения, которые не оцениваются немедленно, а оцениваются, когда требуется результат. Это поможет повысить производительность кода.

Синтаксис

let identifier = lazy ( expression )

Remarks

В приведенном выше синтаксисе выражение — это код, который вычисляется только тогда, когда требуется результат, а идентификатор — это значение, в котором хранится результат. Значение имеет тип 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 тип, также используется для последовательностей. Дополнительные сведения см. в разделе последовательности.

См. также