Aracılığıyla paylaş


Gecikmeli İfadeler

Gecikmeli ifadeler , hemen değerlendirilmeyen ancak bunun yerine sonuç gerektiğinde değerlendirilen ifadelerdir. Bu, kodunuzun performansını geliştirmeye yardımcı olabilir.

Sözdizimi

let identifier = lazy ( expression )

Açıklamalar

Önceki söz diziminde ifade , yalnızca bir sonuç gerektiğinde değerlendirilen koddur ve tanımlayıcı sonucu depolayan bir değerdir. değeri, için kullanılan Lazy<'T> gerçek türün ifadenin sonucundan belirlendiği türündedir'T.

Gecikmeli ifadeler, bir ifadenin yürütülmesini yalnızca sonucun gerekli olduğu durumlarla kısıtlayarak performansı geliştirmenizi sağlar.

İfadeleri gerçekleştirilmeye zorlamak için yöntemini Forceçağırırsınız. Force yürütmenin yalnızca bir kez gerçekleştirilmesine neden olur. Aynı sonucu döndürmek için Force sonraki çağrılar, ancak herhangi bir kod yürütmeyin.

Aşağıdaki kodda gecikmeli ifadelerin kullanımı ve kullanımı gösterilmektedir Force. Bu kodda, türü result şeklindedir Lazy<int>ve Force yöntemi bir intdöndürür.

let x = 10
let result = lazy (x + 10)
printfn "%d" (result.Force())

Gecikmeli değerlendirme ancak türü değil Lazy , diziler için de kullanılır. Daha fazla bilgi için bkz . Diziler.

Formatting

Çok satırlı gecikmeli ifadeler için açma parantezini anahtar sözcükle aynı satıra lazy yerleştirin ve ifade gövdesi bir düzey girintili:

let expensiveCalculation =
    lazy (
        let step1 = performStep1()
        let step2 = performStep2 step1
        step2 * 2
    )

Gecikmeli ifadeleri biçimlendirme hakkında daha fazla bilgi için F# biçimlendirme kılavuzuna bakın.

Ayrıca bakınız