Compartilhar via


Expressões lentas

Expressões lentas 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 código.

Sintaxe

let identifier = lazy ( expression )

Observações

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

Expressões lentas permitem que você melhore o desempenho restringindo 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, você chama o método Force. Force faz com que a execução seja executada apenas uma vez. Chamadas subsequentes para Force retornar o mesmo resultado, mas não execute nenhum código.

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

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

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

Formatting

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

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

Para obter mais informações sobre a formatação de expressões lentas, consulte o guia de formatação F#.

Consulte também