Výrazy Lazy
Opožděné výrazy jsou výrazy , které se nevyhodnocují okamžitě, ale vyhodnocují se, když je potřeba výsledek. To může pomoct zlepšit výkon kódu.
Syntaxe
let identifier = lazy ( expression )
Poznámky
V předchozí syntaxi je výraz kód, který se vyhodnotí pouze v případě, že je výsledek povinný, a identifikátor je hodnota, která ukládá výsledek. Hodnota je typu Lazy<'T>
, kde skutečný typ, pro který se používá 'T
, je určen z výsledku výrazu.
Opožděné výrazy umožňují zvýšit výkon omezením provádění výrazu pouze na situace, kdy je potřeba výsledek.
Chcete-li vynutit provedení výrazů, zavoláte metodu Force
. Force
způsobí, že provádění se provede pouze jednou. Následná volání, která Force
vrátí stejný výsledek, ale nespustí žádný kód.
Následující kód znázorňuje použití opožděných výrazů a použití Force
. V tomto kódu je typ result
je Lazy<int>
a Force
metoda vrátí .int
let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())
Opožděné vyhodnocení, ale ne Lazy
typ, se používá také pro sekvence. Další informace najdete v tématu Sekvence.