Expresiones diferidas

Las expresiones diferida son expresiones que no se evalúan inmediatamente, sino que se evalúan cuando se necesita el resultado. Esto puede ayudar a mejorar el rendimiento del código.

Sintaxis

let identifier = lazy ( expression )

Comentarios

En la sintaxis anterior, expression es código que solo se evalúa cuando se requiere un resultado y identifier es un valor que almacena el resultado. El valor es de tipo , donde el tipo real para el que se usa Lazy<'T> se determina a partir del resultado de la 'T expresión.

Las expresiones diferida permiten mejorar el rendimiento mediante la restricción de la ejecución de expresiones a solo aquellas situaciones en las que se necesita un resultado.

Para forzar la realización de las expresiones, llame al método Force . Force hace que la ejecución se realice solo una vez. Las llamadas Force posteriores devuelven el mismo resultado, pero no ejecutan ningún código.

En el código siguiente se muestra el uso de expresiones diferida y el uso de Force . En este código, el tipo result de es y el método devuelve un Lazy<int> Force int .

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

La evaluación diferida, pero no el Lazy tipo, también se usa para las secuencias. Para obtener más información, vea Secuencias.

Vea también