Partager via


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 peut contribuer à améliorer les performances de votre code.

Syntaxe

let identifier = lazy ( expression )

Remarques

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>, où le type réel utilisé est 'T déterminé à partir du résultat de l’expression.

Les expressions différées vous permettent d’améliorer les performances en limitant l’exécution d’une expression uniquement aux situations dans lesquelles un résultat est nécessaire.

Pour forcer l’exécution des expressions, vous appelez la méthode Force. Force entraîne l’exécution d’une seule fois. Les appels suivants pour Force retourner le même résultat, mais n’exécutent pas de code.

Le code suivant illustre l’utilisation d’expressions différées et l’utilisation de Force. Dans ce code, le type est resultLazy<int>, et la Force méthode retourne un int.

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

L’évaluation différée, mais pas le Lazy type, est également utilisée pour les séquences. Pour plus d’informations, consultez Séquences.

Formatting

Pour les expressions paresseux multilignes, placez la parenthèse ouvrante sur la même ligne que le mot clé, avec le corps de l’expression lazy mis en retrait un niveau :

let expensiveCalculation =
    lazy (
        let step1 = performStep1()
        let step2 = performStep2 step1
        step2 * 2
    )

Pour plus d’informations sur la mise en forme des expressions différées, consultez le guide de mise en forme F#.

Voir aussi