Teilen über


Faule Ausdrücke

Faule Ausdrücke sind Ausdrücke, die nicht sofort ausgewertet werden, sondern stattdessen ausgewertet werden, wenn das Ergebnis benötigt wird. Dies kann dazu beitragen, die Leistung Ihres Codes zu verbessern.

Syntax

let identifier = lazy ( expression )

Bemerkungen

In der vorherigen Syntax ist Ausdruck Code, der nur ausgewertet wird, wenn ein Ergebnis erforderlich ist, und der Bezeichner ein Wert ist, der das Ergebnis speichert. Der Wert ist vom Typ Lazy<'T>, wobei der tatsächliche Typ, für den verwendet 'T wird, aus dem Ergebnis des Ausdrucks bestimmt wird.

Lazy expressions enable you to improve performance by restricting the execution of an expression to only those situations in which a result is needed.

Um zu erzwingen, dass die Ausdrücke ausgeführt werden, rufen Sie die Methode Forceauf. Force bewirkt, dass die Ausführung nur einmal ausgeführt wird. Nachfolgende Aufrufe, um Force dasselbe Ergebnis zurückzugeben, aber keinen Code ausführen.

Der folgende Code veranschaulicht die Verwendung von faulen Ausdrücken und der Verwendung von Force. In diesem Code ist der Typ von result , Lazy<int>und die Force Methode gibt eine int.

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

Lazy Evaluation, aber nicht der Lazy Typ, wird auch für Sequenzen verwendet. Weitere Informationen finden Sie unter Sequences.

Formatierung

Platzieren Sie bei mehrzeiligen faulen Ausdrücken die öffnende Klammer in derselben Zeile wie das lazy Schlüsselwort, wobei der Textkörper des Ausdrucks eine Ebene eingezogen hat:

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

Weitere Informationen zum Formatieren von faulen Ausdrücken finden Sie im F#-Formatierungshandbuch.

Siehe auch