Dart Academy · Pelajaran

Transformasi Stream: map, where, take

Mengubah bentuk rangkaian event

Pelajaran 3 dari 413 langkah

Transformasi Stream: map, where, take 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.

Stream Dapat Diubah

Seperti daftar, stream memiliki metode praktis untuk mengubah bentuk peristiwanya. Anda dapat mengubah stream menjadi stream baru tanpa menyentuh sumbernya.

map Mengubah Setiap Peristiwa

Metode map menjalankan fungsi pada setiap peristiwa dan memancarkan hasilnya. Metode ini mengubah satu stream nilai menjadi stream berisi nilai yang telah diubah.

final doubled = numbers.map((n) => n * 2);

map Mempertahankan Jumlah

Dengan map, jumlah peristiwa tetap sama; hanya bentuknya yang berubah. Tiga input selalu menghasilkan tepat tiga output. ✨

Stream.fromIterable([1, 2, 3])
    .map((n) => 'Item $n');

where Menyaring Peristiwa

Metode where hanya mempertahankan peristiwa yang lolos dari suatu pengujian. Apa pun yang menghasilkan false akan dibuang dari stream baru.

final evens = numbers.where((n) => n.isEven);

where Dapat Mengurangi Stream

Berbeda dari map, where dapat memancarkan lebih sedikit peristiwa daripada yang diterimanya. Jika tidak ada yang lolos dari pengujian, stream hasil akan tetap kosong.

take Membatasi Jumlah

Metode take hanya memancarkan n peristiwa pertama, lalu berhenti mendengarkan. Metode ini sempurna jika Anda hanya memerlukan beberapa nilai dari stream yang panjang. 🎯

final firstThree = bigStream.take(3);

take Membatalkan Lebih Awal

Setelah mengirimkan n peristiwa, take secara otomatis membatalkan langganannya ke sumber. Stream asli berhenti menghasilkan peristiwa untuk Anda.

Merangkai Transformasi

Metode-metode ini mengembalikan stream baru, sehingga Anda dapat merangkai semuanya. Baca rangkaian dari kiri ke kanan: saring, lalu ubah, kemudian batasi.

numbers
    .where((n) => n.isEven)
    .map((n) => n * 10)
    .take(2);

Bersifat Lazy secara Alami

Transformasi bersifat lazy: tidak ada yang berjalan sampai Anda mendengarkan. Rangkaian tersebut hanya memproses peristiwa saat tiba, satu per satu.

Alat Lain: takeWhile dan skip

Selain tiga inti tersebut, takeWhile memancarkan peristiwa sampai suatu pengujian gagal, sedangkan skip mengabaikan n peristiwa pertama. Gaya perangkaian yang sama tetap berlaku.

stream.skip(2).takeWhile((n) => n < 100);

Mengonsumsi Hasil

Setelah melakukan transformasi, baca stream baru dengan await for atau listen. Setiap nilai yang dipancarkan sudah melewati seluruh rangkaian Anda.

await for (final v in transformed) {
  print(v);
}

Pemeriksaan Singkat

Metode mana yang dapat mengurangi jumlah peristiwa?

Ringkasan

Anda dapat mengubah bentuk stream dengan map untuk melakukan transformasi, where untuk menyaring, dan take untuk membatasi. Semuanya dapat dirangkai dan bersifat lazy hingga Anda mendengarkan. 🎉

Gratis untuk memulai

Belajar Dart dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Transformasi Stream: map, where, take” gratis?

Ya — teks lengkap “Transformasi Stream: map, where, take” 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 “Transformasi Stream: map, where, take”?

Mengubah bentuk rangkaian event 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 “Transformasi Stream: map, where, take” 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

  1. Mendengarkan dengan await for
  2. Stream Tunggal vs Broadcast
  3. Transformasi Stream: map, where, take
  4. Membuat Stream dengan async*
← Kembali ke Dart Academy