Extension pada Generics
Memperluas List, Iterable, dan parameter tipe
Extension pada Generics adalah pelajaran Dart Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.
Memperluas Koleksi
Keajaiban sebenarnya terlihat saat Anda memperluas tipe generik seperti List atau Iterable. Satu ekstensi dapat membantu semua tipe elemen sekaligus.
Deklarasikan Parameter Tipe
Letakkan parameter tipe setelah nama ekstensi, lalu gunakan parameter tersebut pada klausa on. Kini pembantu Anda tetap sepenuhnya aman terhadap tipe.
extension Firsts<T> on List<T> {
T? get firstOrNull => isEmpty ? null : this[0];
}Tipe Elemen Mengalir ke Seluruh Bagian
Karena Anda menulis List of T, metode Anda otomatis mengembalikan tipe elemen yang tepat. Tidak perlu melakukan konversi tipe dan tidak ada kejutan dinamis.
List<int> nums = [1, 2, 3];
int? n = nums.firstOrNull; // typed as int?Perluas Iterable untuk Jangkauan Lebih Luas
Memperluas Iterable, bukan List, membuat pembantu Anda berfungsi pada list, set, dan iterable malas. Jangkauan lebih luas, kode tetap sama.
extension Counts<T> on Iterable<T> {
int countWhere(bool Function(T) f) => where(f).length;
}Metode Generik di Dalamnya
Metode ekstensi juga dapat menerima parameter generik sendiri, terpisah dari tipe yang sedang Anda perluas.
extension Mapping<T> on List<T> {
List<R> mapTo<R>(R Function(T) f) => map(f).toList();
}Inferensi Tipe Membantu Anda
Dart biasanya menyimpulkan argumen tipe dari nilai yang menjadi tempat pemanggilan, sehingga kode pemanggilan Anda tetap singkat dan rapi.
var first = ["a", "b"].firstOrNull; // String?Perluas Map dengan Dua Tipe
Map memerlukan dua parameter. Tulis Map of K, V dan Anda dapat membuat pembantu yang memperhatikan kunci maupun nilainya.
extension MapPick<K, V> on Map<K, V> {
V? pick(K key) => this[key];
}Tetap Aman terhadap Null
Mengembalikan T?, bukan T, menandakan bahwa suatu nilai mungkin tidak ada, sehingga kode pemanggil tetap menangani kondisi tersebut dengan benar dalam keamanan null.
extension SafeLast<T> on List<T> {
T? get lastOrNull => isEmpty ? null : last;
}Gunakan Ulang pada Berbagai Tipe Elemen
Satu ekstensi generik dapat digunakan untuk setiap tipe elemen. firstOrNull yang sama dapat digunakan pada angka, string, dan kelas buatan Anda sendiri.
var who = <User>[].firstOrNull; // User?Batasi Jika Diperlukan
Jika pembantu Anda memerlukan kemampuan tertentu, tambahkan batasan dengan extends agar hanya tipe elemen yang sesuai yang diizinkan.
extension Sums<T extends num> on List<T> {
num total() => fold(0, (a, b) => a + b);
}Mengapa Ekstensi Generik Unggul
Ekstensi generik memadukan penggunaan ulang dengan keamanan: tulis pembantu sekali, lalu pembantu tersebut beradaptasi dengan tipe elemen apa pun sambil mempertahankan tipe hasil yang tepat.
Pemeriksaan Singkat
Pemeriksaan singkat tentang cara menjaga ekstensi tetap aman terhadap tipe.
Ringkasan: Ekstensi Generik
Anda dapat menambahkan parameter tipe ke ekstensi, menargetkan List, Iterable, atau Map, bahkan membatasinya dengan extends agar tetap dapat digunakan ulang dan aman. ✅
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 “Extension pada Generics” gratis?
Ya — teks lengkap “Extension pada Generics” 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 “Extension pada Generics”?
Memperluas List, Iterable, dan parameter tipe 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 2 dari 4.
Berapa lama pelajaran “Extension pada Generics” 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
- Menulis Extension Pertama Anda
- Extension pada Generics
- Anggota Extension Static dan Konflik
- Tipe Extension untuk Wrapper Tanpa Biaya