Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Formatting
U víceřádkových opožděných výrazů umístěte levou závorku na stejný řádek jako lazy klíčové slovo s odsazením textu výrazu o jednu úroveň:
let expensiveCalculation =
lazy (
let step1 = performStep1()
let step2 = performStep2 step1
step2 * 2
)
Další informace o formátování opožděných výrazů najdete v průvodci formátováním jazyka F#.