Verzögerte Berechnungen (F#)

Verzögerte Berechnungen werden nicht sofort ausgewertet, sondern erst, wenn das Ergebnis tatsächlich benötigt wird. Dies kann helfen, die Leistung des Codes zu verbessern.

let identifier = lazy ( expression )

Hinweise

In der vorherigen Syntax ist expression Code, der nur ausgewertet wird, wenn ein Ergebnis erforderlich ist, und identifier ist ein Wert, in dem das Ergebnis gespeichert wird. Der Wert ist vom Typ Lazy<'T>, wobei der Typ, der tatsächlich für 'T verwendet wird, durch das Ergebnis des Ausdrucks bestimmt wird.

Verzögerte Berechnungen ermöglichen durch Einschränken der Ausführung einer Berechnung auf jene Situationen, in denen ein Ergebnis benötigt wird, die Verbesserung der Leistung.

Um die Berechnung zu erzwingen, rufen Sie die Methode Force auf. Force verursacht nur die einmalige Ausführung. Nachfolgende Aufrufe von Force geben das gleiche Ergebnis zurück, ohne Code auszuführen.

Im folgenden Code wird die Verwendung von verzögerter Berechnung und Force veranschaulicht. In diesem Code ist der result-Typ Lazy<int>, und die Force-Methode gibt int zurück.

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

Für Sequenzen wird auch verzögerte Auswertung, jedoch nicht vom Typ Lazy, verwendet. Weitere Informationen finden Sie unter Sequenzen (F#).

Siehe auch

Weitere Ressourcen

F#-Sprachreferenz

LazyExtensions-Modul