Lusta kifejezések
A lusta kifejezések olyan kifejezések, amelyek nem kerülnek azonnal kiértékelésre, hanem az eredmény szükség esetén lesznek kiértékelve. Ez segíthet a kód teljesítményének javításában.
Syntax
let identifier = lazy ( expression )
Megjegyzések
Az előző szintaxisban a kifejezés olyan kód, amely csak akkor lesz kiértékelve, ha eredményre van szükség, az azonosító pedig az eredményt tároló érték. Az érték típus Lazy<'T>
, ahol a kifejezés eredménye határozza meg a tényleges 'T
típust.
A lusta kifejezések lehetővé teszik a teljesítmény javítását azáltal, hogy egy kifejezés végrehajtását csak azokra a helyzetekre korlátozza, amelyekben eredményre van szükség.
A kifejezések végrehajtásának kényszerítéséhez hívja meg a metódust Force
. Force
a végrehajtást csak egyszer hajtja végre. A későbbi hívások ugyanannak az eredménynek a visszaadására Force
szolgálnak, de nem hajtanak végre semmilyen kódot.
Az alábbi kód a lusta kifejezések használatát és a használatot Force
mutatja be. Ebben a kódban a típus result
az Lazy<int>
, és a Force
metódus egy int
.
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
Lusta kiértékelés, de nem a Lazy
típus, a szekvenciákhoz is használható. További információ: Szekvenciák.