0Pricing
Swift Academy · Pelajaran

Sequence Lazy untuk Efisiensi

Menggunakan .lazy untuk menunda komputasi dan menghindari pembuatan array perantara.

Sequence Lazy untuk Efisiensi adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Selamat Datang

Urutan evaluasi tertunda menunda perhitungan hingga hasilnya diperlukan, sehingga pembuatan larik perantara saat merangkai operasi dapat dihindari.

Masalah Evaluasi Langsung

```swift let result = (1...1_000_000) .filter { $0 % 7 == 0 } // creates array of ~142857 elements .map { $0 * 2 } // creates another 142857-element array .prefix(5) // Wasteful — only 5 elements needed! ```

Menambahkan .lazy

```swift let result = (1...1_000_000) .lazy .filter { $0 % 7 == 0 } .map { $0 * 2 } .prefix(5) // Only computes what prefix(5) needs — no intermediate arrays! print(Array(result)) // [14,28,42,56,70] ```

Jenis Koleksi Evaluasi Tertunda

Saat Anda memanggil `.lazy` pada sebuah urutan, Swift mengembalikan `LazySequence` yang membungkusnya: ```swift let lazyArr = [1,2,3].lazy // LazySequence<[Int]> let lazyMap = lazyArr.map { $0*2 } // LazyMapSequence ```

Kapan Evaluasi Tertunda Unggul

Evaluasi tertunda unggul ketika: • Anda hanya memerlukan awalan dari urutan yang besar • Sumbernya tidak terbatas (pembangkit khusus) • Anda merangkai banyak transformasi pada koleksi besar

Urutan Tak Terbatas

```swift struct Fibonacci: Sequence { func makeIterator() -> some IteratorProtocol { var a = 0, b = 1 return AnyIterator { let next = a; a = b; b = next + b; return next } } } let first10 = Array(Fibonacci().prefix(10)) ```

Evaluasi Tertunda dengan first(where:)

```swift let firstEven = (1...Int.max) .lazy .first { $0 % 2 == 0 } // Returns 2 immediately — doesn't iterate the whole range ```

Memaksa Evaluasi

Untuk mewujudkan urutan evaluasi tertunda menjadi nilai nyata, bungkus dengan Array: ```swift let eager = Array((1...100).lazy.filter { $0 % 3 == 0 }.map { $0*2 }) ```

Evaluasi Tertunda Tidak Selalu Unggul

Untuk koleksi kecil, evaluasi tertunda memiliki biaya tambahan akibat jenis pembungkus. Ukur kinerja sebelum menerapkan `.lazy` pada setiap rangkaian. Gunakan evaluasi tertunda ketika koleksinya besar dan Anda memerlukan penghentian lebih awal.

Pembangkit Evaluasi Tertunda Khusus

```swift func naturals() -> AnyIterator { var n = 0 return AnyIterator { n += 1; return n } } Array(naturals().prefix(5)) // [1,2,3,4,5] ```

Pemeriksaan Singkat

Apa yang dilakukan awalan `.lazy` pada rangkaian koleksi?

Rangkuman

Hal-hal penting: • `.lazy` menunda perhitungan pemetaan/penyaringan hingga digunakan • Menghindari alokasi larik perantara • Berguna untuk urutan besar ketika hanya awalan yang diperlukan • Gabungkan dengan `prefix`, `first(where:)` untuk penghentian lebih awal • Wujudkan dengan `Array(lazySeq)` bila diperlukan Kursus selesai!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Sequence Lazy untuk Efisiensi” gratis?

Ya — teks lengkap “Sequence Lazy untuk Efisiensi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Sequence Lazy untuk Efisiensi”?

Menggunakan .lazy untuk menunda komputasi dan menghindari pembuatan array perantara. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Sequence Lazy untuk Efisiensi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Fungsi Murni dan Rancangan Tanpa Efek Samping
  2. Fungsi Orde Tinggi: map, flatMap, compactMap
  3. Komposisi Fungsi dan Alur Pemrosesan
  4. Sequence Lazy untuk Efisiensi
← Kembali ke Swift Academy