Parameter Tipe Terbatas dengan extends
Membatasi hal yang dapat diterima tipe generik
Parameter Tipe Terbatas dengan extends 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.
Saat Tipe Apa Pun Terlalu Luas
Parameter tipe biasa menerima semua tipe, tetapi terkadang Anda memerlukan lebih dari itu. Anda mungkin ingin memanggil metode yang hanya tersedia pada tipe tertentu. 🔒
Batasan dengan extends
Anda dapat menambahkan batasan menggunakan extends. Ini menyatakan bahwa parameter tipe harus berupa tipe tertentu atau subtipenya.
class Cage<T extends Animal> {}Jaminan dari Batasan
Di dalam kelas, Dart kini yakin bahwa T setidaknya merupakan Animal. Jadi, Anda dapat menggunakan anggota apa pun yang didefinisikan Animal dengan aman.
class Cage<T extends Animal> {
void feed(T a) => a.eat();
}Menolak Tipe yang Salah
Kompilator memblokir argumen tipe apa pun yang tidak memenuhi batasan. Meneruskan tipe yang tidak berkaitan akan langsung menghasilkan kesalahan.
Cage<String>();Batasan Numerik
Batasan yang umum adalah num, induk dari int dan double. Batasan ini memungkinkan generik melakukan operasi aritmetika sambil tetap menerima kedua tipe bilangan tersebut.
T addOne<T extends num>(T x) => x + 1 as T;Batasan pada Metode
Batasan juga berlaku pada metode generik, bukan hanya kelas. Letakkan extends tepat setelah nama parameter tipe dalam metode.
num biggest<T extends num>(List<T> xs) =>
xs.reduce((a, b) => a > b ? a : b);Batasan Bawaan adalah Object
Jika Anda tidak mencantumkan batasan, batasan implisitnya adalah Object?. Itulah sebabnya T tanpa batasan hanya memungkinkan Anda menggunakan anggota yang dimiliki setiap objek.
Batasan Comparable
Untuk mengurutkan atau membandingkan, gunakan batasan Comparable. Setelah itu, Anda dapat memanggil compareTo pada nilai di dalam kode generik.
T max<T extends Comparable<T>>(T a, T b) =>
a.compareTo(b) >= 0 ? a : b;Batasan Menjelaskan Maksud
Batasan juga memberi tahu pembaca jenis tipe yang sesuai di sini. Deklarasi tipe itu sendiri menjelaskan kontrak yang diharapkan kode Anda.
Batasan yang Merujuk Diri Sendiri
Perhatikan bahwa T dapat muncul dalam batasannya sendiri, seperti pada T extends Comparable of T. Pola ini mengaitkan suatu tipe dengan operasi terhadap dirinya sendiri.
Pertahankan Batasan Tetap Minimal
Gunakan batasan paling longgar yang masih berfungsi. Pembatasan berlebihan menutup kemungkinan penggunaan tipe yang valid, sedangkan tanpa batasan sama sekali, metode yang berguna tidak dapat diakses.
Pemeriksaan Singkat
Apa yang dapat Anda lakukan di dalam kelas berkat batasan?
Ringkasan
Anda telah menggunakan extends untuk membatasi parameter tipe, sehingga metode tipe yang menjadi batasan dapat digunakan dan tipe yang tidak berkaitan ditolak. Buat batasan selonggar yang diperlukan tugas. ✅
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Parameter Tipe Terbatas dengan extends” gratis?
Ya — teks lengkap “Parameter Tipe Terbatas dengan extends” 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 “Parameter Tipe Terbatas dengan extends”?
Membatasi hal yang dapat diterima tipe generik 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 “Parameter Tipe Terbatas dengan extends” 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
- Mengapa Generics Mengungguli dynamic
- Class dan Metode Generik
- Parameter Tipe Terbatas dengan extends
- Koleksi Generik dalam Praktik