Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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 )
Anmärkningar
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 resulttypen av Lazy<int> 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.
Formatting
För lata uttryck med flera rader placerar du den inledande parentesen på samma rad som nyckelordet lazy , med uttryckstexten indragen på en nivå:
let expensiveCalculation =
lazy (
let step1 = performStep1()
let step2 = performStep2 step1
step2 * 2
)
Mer information om hur du formaterar lata uttryck finns i formateringsguiden för F#.