Class sealed dan switch Menyeluruh
Menutup hierarki agar dapat diperiksa oleh compiler
Class sealed dan switch Menyeluruh 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.
Keluarga Tertutup
Kelas sealed mendefinisikan sekumpulan subtipe yang tetap. Tidak ada kode di luar file-nya yang dapat menambahkan subtipe baru, sehingga seluruh keluarganya sudah diketahui.
sealed class Shape {}Mendeklarasikan Subtipe
Subkelas dari tipe sealed berada dalam file yang sama. Bersama-sama, subkelas tersebut membentuk setiap varian yang mungkin dan harus dipertimbangkan oleh kompiler.
class Circle extends Shape {}
class Square extends Shape {}Tidak Dapat Dibuat Langsung
Kelas sealed secara implisit bersifat abstrak, jadi Anda tidak pernah membuatnya secara langsung. Anda hanya membuat salah satu subtipe yang sudah diketahui.
var s = Shape(); // error
var s = Circle(); // okManfaat Sealed
Karena subtipenya lengkap, Dart mengetahui seluruh daftarnya. Hal itu memungkinkan switch memverifikasi bahwa Anda telah menangani setiap kasus.
Switch atas Subtipe
Sebuah switch pada nilai sealed dapat mencocokkan setiap subtipe berdasarkan pola. Setiap cabang melihat tipe tepat yang dicocokkannya.
switch (shape) {
case Circle(): print('round');
case Square(): print('boxy');
}Kelengkapan Diperiksa
Jika Anda melupakan sebuah subtipe, kompiler melaporkan sebuah kesalahan. Anda tidak dapat menghilangkan suatu kasus dari switch sealed secara diam-diam.
Tidak Memerlukan default
Karena setiap kasus sudah tercakup, Anda tidak memerlukan cabang default. Menambahkannya hanya akan menyembunyikan kasus yang terlewat di masa mendatang.
switch sebagai Ekspresi
Gunakan switch sebagai ekspresi untuk menghitung nilai secara langsung. Kelengkapan tetap berlaku, sehingga setiap cabang mengembalikan sesuatu.
final name = switch (shape) {
Circle() => 'circle',
Square() => 'square',
};Menambahkan Varian Baru
Tambahkan subtipe baru nanti, dan setiap switch yang tidak menanganinya akan ditandai merah. Kompiler memandu Anda untuk memperbarui setiap switch tersebut.
class Triangle extends Shape {}
// existing switches now errorsealed dibandingkan abstract
Kelas abstract mengizinkan subtipe dari luar yang belum diketahui, sehingga switch tidak dapat bersifat lengkap. Sealed menutup kumpulan tersebut agar pemeriksaan dapat dilakukan sepenuhnya.
Cocok untuk Status
Tipe sealed sangat cocok untuk memodelkan status aplikasi seperti Loading, Berhasil, dan Kesalahan. Dengan begitu, setiap cabang antarmuka pengguna dijamin tersedia. ✅
sealed class Result {}
class Loading extends Result {}
class Done extends Result {}Pemeriksaan Singkat
Pemeriksaan singkat tentang kelengkapan sealed.
Ringkasan
Anda telah melihat bahwa kelas sealed menutup sebuah keluarga tipe dan membuat setiap switch menjadi lengkap, sehingga kasus yang terlewat menjadi kesalahan kompilasi. 🎯
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Class sealed dan switch Menyeluruh” gratis?
Ya — teks lengkap “Class sealed dan switch Menyeluruh” 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 “Class sealed dan switch Menyeluruh”?
Menutup hierarki agar dapat diperiksa oleh compiler 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 “Class sealed dan switch Menyeluruh” 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
- Field final dan Immutabilitas Mendalam
- Class sealed dan switch Menyeluruh
- Modifier base, interface, dan final
- copyWith dan Kesetaraan Nilai