Lata uttryck
Lata uttryck är uttryck som inte utvärderas omedelbart, utan utvärderas i stället när resultatet behövs. Detta kan bidra till att förbättra kodens prestanda.
Syntax
let identifier = lazy ( expression )
Kommentarer
I den tidigare syntaxen är uttrycket kod som endast utvärderas när ett resultat krävs och identifieraren är ett värde som lagrar resultatet. Värdet är av typen Lazy<'T>
, där den faktiska typen som används för 'T
bestäms utifrån resultatet av uttrycket.
Med lata uttryck kan du förbättra prestanda genom att begränsa körningen av ett uttryck till endast de situationer där ett resultat behövs.
Om du vill tvinga uttrycken att utföras anropar du metoden Force
. Force
gör att körningen bara utförs en gång. Efterföljande anrop för att Force
returnera samma resultat, men kör ingen kod.
Följande kod illustrerar användningen av lata uttryck och användningen av Force
. I den här koden är Lazy<int>
typen av result
och Force
metoden returnerar en int
.
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
Lat utvärdering, men inte Lazy
typen, används också för sekvenser. Mer information finns i Sekvenser.