Compartir vía


Expresiones diferidas

Las expresiones diferidas son aquellas que no se evalúan de inmediato, sino cuando realmente 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 se evalúa solo cuando se requiere un resultado e identifier es un valor que almacena el resultado. El valor es de tipo Lazy<'T>, donde el tipo real que se usa para 'T se determina a partir del resultado de la expresión.

Las expresiones diferidas permiten mejorar el rendimiento, ya que restringen la ejecución de una expresión solo a aquellas situaciones en las que se necesita un resultado.

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

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

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

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

Vea también