Partilhar via


Expressões preguiçosas

Expressões preguiçosas são expressões que não são avaliadas imediatamente, mas são avaliadas quando o resultado é necessário. Isso pode ajudar a melhorar o desempenho do seu código.

Sintaxe

let identifier = lazy ( expression )

Observações

Na sintaxe anterior, expressão é um código que é avaliado somente quando um resultado é necessário, e identificador é um valor que armazena o resultado. O valor é do tipo Lazy<'T>, onde o tipo real para o qual é usado 'T é determinado a partir do resultado da expressão.

As expressões preguiçosas permitem melhorar o desempenho restringindo a execução de uma expressão apenas às situações em que um resultado é necessário.

Para forçar as expressões a serem executadas, chame o método Force. Force faz com que a execução seja realizada apenas uma vez. Chamadas subsequentes para Force retornar o mesmo resultado, mas não executar nenhum código.

O código a seguir ilustra o uso de expressões preguiçosas e o uso de Force. Nesse código, o tipo de result é Lazy<int>, e o Force método retorna um intarquivo .

let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())

A avaliação preguiçosa, mas não o Lazy tipo, também é usada para sequências. Para obter mais informações, consulte Sequências.

Formatting

Para expressões preguiçosas com várias linhas, coloque o parêntese de abertura na mesma linha da lazy palavra-chave, com o corpo da expressão recuado um nível:

let expensiveCalculation =
    lazy (
        let step1 = performStep1()
        let step2 = performStep2 step1
        step2 * 2
    )

Para obter mais informações sobre como formatar expressões preguiçosas, consulte o guia de formatação F#.

Ver também