Iterable Malas dan Generator dengan sync*
Menghasilkan nilai sesuai permintaan
Iterable Malas dan Generator dengan sync* adalah pelajaran Dart Academy gratis di CoddyKit. Ini adalah pelajaran 3 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 Dart Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Dart Academy mencakup 4 pelajaran total.
Arti Malas
Iterabel malas tidak menghitung nilainya sampai Anda benar-benar memintanya. Pekerjaan dilakukan sesuai kebutuhan, bukan sekaligus. 🦥
Iterabel Bersifat Malas
Metode seperti map dan where mengembalikan iterabel malas. Tidak ada yang dijalankan sampai Anda melakukan iterasi atau memanggil toList.
var it = [1, 2, 3].map((n) {
print('seen $n');
return n * 2;
});Belum Ada yang Berjalan
Sampai Anda menggunakan iterabel tersebut, isi map tidak pernah dijalankan. Kemalasan memungkinkan Anda menjelaskan pekerjaan dan menunda biayanya.
for (var x in it) print(x); // now it runsMengapa Kemalasan Membantu
Kemalasan menghemat pekerjaan saat Anda hanya memerlukan beberapa hasil. Jika digabungkan dengan take, Anda dapat berhenti lebih awal dan melewati sisanya.
var first2 = it.take(2).toList();Kenali Generator sinkron*
Fungsi sinkron* adalah generator yang membuat iterabel malas. Fungsi ini menghasilkan nilai satu per satu saat diminta.
Iterable<int> count(int n) sync* {
for (var i = 1; i <= n; i++) yield i;
}Kata Kunci Menghasilkan
Di dalam generator, menghasilkan menyerahkan satu nilai kepada pemanggil dan berhenti sejenak sampai nilai berikutnya diperlukan.
print(count(3).toList()); // [1, 2, 3]Urutan Tak Terbatas
Karena nilainya malas, generator dapat menjelaskan urutan tak terbatas dengan aman, selama Anda hanya mengambil bagian yang berhingga.
Iterable<int> naturals() sync* {
var i = 0;
while (true) yield ++i;
}Mengambil Bagian Berhingga
Pasangkan generator tak terbatas dengan take untuk mengambil tepat yang Anda perlukan. Perulangan berhenti begitu bagian Anda terisi.
print(naturals().take(5).toList()); // [1, 2, 3, 4, 5]Delegasi Menghasilkan*
Gunakan menghasilkan* untuk menghasilkan setiap nilai dari iterabel atau generator lain. Fitur ini meratakan satu urutan ke dalam urutan saat ini.
Iterable<int> both() sync* {
yield* count(2);
yield* count(2);
}Generator vs Membuat Daftar
Generator menghindari pembuatan seluruh daftar di memori. Nilai dialirkan satu per satu, sehingga urutan besar atau tak berujung tetap hemat memori.
Generator sinkron* vs asinkron*
Gunakan sinkron* untuk iterabel malas yang sinkron. Pasangan asinkronnya, asinkron*, menghasilkan aliran untuk urutan peristiwa asinkron.
Cek Cepat
Uji pemahaman Anda tentang generator.
Ringkasan
Iterabel bersifat malas, dan generator sinkron* menghasilkan nilai sesuai kebutuhan. Dengan begitu, Anda bahkan dapat memodelkan urutan tak terbatas dengan biaya rendah. 🌟
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Iterable Malas dan Generator dengan sync*” gratis?
Ya — teks lengkap “Iterable Malas dan Generator dengan sync*” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Dart Academy, upgrade ke CoddyKit PRO. Kursus Dart Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Iterable Malas dan Generator dengan sync*”?
Menghasilkan nilai sesuai permintaan Kamu berlatih Dart 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 Dart Academy?
Tidak diperlukan pengalaman sebelumnya. Dart 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 3 dari 4.
Berapa lama pelajaran “Iterable Malas dan Generator dengan sync*” 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 Dart Academy ini?
Ya. Setiap pelajaran Dart 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
- Fungsi Orde Tinggi dan Currying
- fold, reduce, dan expand
- Iterable Malas dan Generator dengan sync*
- Menyusun Pipeline Fungsi Murni