Поделиться через


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

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

Синтаксис

let identifier = lazy ( expression )

Замечания

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

См. также