Bagikan melalui


Ekspresi Malas

Ekspresi malas adalah ekspresi yang tidak segera dievaluasi, tetapi sebaliknya dievaluasi ketika hasilnya diperlukan. Ini dapat membantu meningkatkan performa kode Anda.

Sintaksis

let identifier = lazy ( expression )

Komentar

Dalam sintaks sebelumnya, ekspresi adalah kode yang dievaluasi hanya ketika hasil diperlukan, dan pengidentifikasi adalah nilai yang menyimpan hasilnya. Nilainya berjenis Lazy<'T>, di mana jenis aktual yang digunakan 'T ditentukan dari hasil ekspresi.

Ekspresi malas memungkinkan Anda meningkatkan performa dengan membatasi eksekusi ekspresi hanya untuk situasi di mana hasil diperlukan.

Untuk memaksa ekspresi dilakukan, Anda memanggil metode Force. Force menyebabkan eksekusi dilakukan hanya satu kali. Panggilan berikutnya untuk Force mengembalikan hasil yang sama, tetapi jangan jalankan kode apa pun.

Kode berikut mengilustrasikan penggunaan ekspresi malas dan penggunaan Force. Dalam kode ini, jenisnya result adalah Lazy<int>, dan Force metode mengembalikan int.

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

Evaluasi malas, tetapi bukan jenisnya Lazy , juga digunakan untuk urutan. Untuk informasi selengkapnya, lihat Urutan.

Formatting

Untuk ekspresi malas multibaris, tempatkan tanda kurung pembuka pada baris lazy yang sama dengan kata kunci, dengan isi ekspresi diindentasikan satu tingkat:

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

Untuk informasi selengkapnya tentang memformat ekspresi malas, lihat panduan pemformatan F#.

Lihat juga