Nicht strikte Ausdrücke
Verzögerte Ausdrücke heißen so, weil sie nicht sofort ausgewertet werden, sondern erst dann, wenn das Ergebnis tatsächlich benötigt wird. Damit können Sie die Leistung des Codes verbessern.
Syntax
let identifier = lazy ( expression )
Bemerkungen
In der vorherigen Syntax ist expression Code, der nur ausgewertet wird, wenn ein Ergebnis erforderlich ist, und identifier ein Wert, in dem das Ergebnis gespeichert wird. Der Wert hat den Typ Lazy<'T>
, wobei der tatsächliche Typ, der für 'T
verwendet wird, anhand des Ergebnisses des Ausdrucks bestimmt wird.
Mit verzögerten Ausdrücken können Sie die Leistung verbessern, indem Sie die Ausführung eines Ausdrucks nur auf die Situationen beschränken, in denen ein Ergebnis benötigt wird.
Um die Ausführung der Ausdrücke zu erzwingen, rufen Sie die Force
-Methode auf. Force
bewirkt, dass die Ausführung nur einmal erfolgt. Nachfolgende Aufrufe von Force
liefern das gleiche Ergebnis, führen aber keinen Code aus.
Der folgende Code veranschaulicht die Verwendung verzögerter Ausdrücke und von Force
. In diesem Code ist result
der Typ von Lazy<int>
, und die Force
-Methode gibt int
zurück.
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
Auch für Sequenzen wird die verzögerte Auswertung, aber nicht der Lazy
-Typ, verwendet. Weitere Informationen finden Sie unter Sequenzen.