Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las expresiones diferidas 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 )
Observaciones
En la sintaxis anterior, la expresión es código que solo se evalúa cuando se requiere un resultado y el identificador 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 al restringir 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 para Force devolver 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 Force método devuelve un 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 secuencias. Para obtener más información, vea Secuencias.
Formatting
Para las expresiones diferidas de varias líneas, coloque el paréntesis de apertura en la misma línea que la lazy palabra clave , con el cuerpo de la expresión con sangría de un nivel:
let expensiveCalculation =
lazy (
let step1 = performStep1()
let step2 = performStep2 step1
step2 * 2
)
Para obtener más información sobre el formato de expresiones diferidas, consulte la guía de formato de F#.