Expressions différées
Les expressions différées sont des expressions qui ne sont pas évaluées immédiatement, mais qui sont plutôt évaluées lorsque le résultat est nécessaire. Cela permet d’améliorer les performances de votre code.
Syntaxe
let identifier = lazy ( expression )
Notes
Dans la syntaxe précédente, l’expression est du code qui est évalué uniquement lorsqu’un résultat est requis, et l’identificateur est une valeur qui stocke le résultat. La valeur est de type Lazy<'T>
, le type réel utilisé pour 'T
étant déterminé à partir du résultat de l’expression.
Les expressions différées vous permettent d’améliorer les performances tout en limitant l’exécution d’une expression aux seules situations dans lesquelles un résultat est nécessaire.
Pour forcer l’exécution des expressions, appelez la méthode Force
. Force
fait en sorte que l’exécution est réalisée à une seule reprise. Les appels suivants pour Force
renvoient le même résultat, mais n’exécutent aucun code.
Le code suivant illustre l’utilisation d’expressions différées et l’utilisation de Force
. Dans ce code, le type de result
est Lazy<int>
, et la Force
méthode renvoie une valeur int
.
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
L’évaluation différée, mais pas le type Lazy
, est également utilisée pour les séquences. Pour plus d’informations, consultez Séquences.