Expressões lentas
Expressões lentas são cálculos que não são avaliados imediatamente, mas quando o resultado é realmente necessário. Isso pode ajudar a melhorar o desempenho do código.
Sintaxe
let identifier = lazy ( expression )
Comentários
Na sintaxe anterior, a expressão é um código que é avaliado somente quando um resultado é necessário e o identificador é um valor que armazena esse resultado. O valor é do tipo Lazy<'T>
, em que o tipo real usado para 'T
é determinado com base no resultado da expressão.
Expressões lentas permitem melhorar o desempenho porque restringem a execução de uma expressão apenas às situações em que um resultado é necessário.
Para forçar a execução das expressões, chame o método Force
. Force
faz com que a execução seja realizada apenas uma vez. As chamadas subsequentes para Force
retornam o mesmo resultado, mas não executam nenhum código.
O código a seguir ilustra o uso de expressões lentas e o uso de Force
. Nele, o tipo de result
é Lazy<int>
e o método Force
retorna um int
.
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
A avaliação lenta, mas não o tipo Lazy
, também é usada para sequências. Para saber mais, confira Sequências.