Megosztás a következőn keresztül:


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 Forcemutatja 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.

Lásd még