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.