Field final dan Immutabilitas Mendalam
Membangun objek yang tidak pernah berubah
Field final dan Immutabilitas Mendalam adalah pelajaran Dart Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.
Tidak Dapat Diubah sejak Perancangan
Objek yang tidak dapat diubah tidak pernah berubah setelah dibuat. Hal ini membuat data Anda dapat diprediksi dan aman untuk dibagikan di seluruh aplikasi. 🔒
Mengenal final
Field final ditetapkan satu kali, saat konstruksi, dan tidak pernah dapat ditetapkan ulang. Nilainya terkunci selama objek tersebut hidup.
class Point {
final int x;
Point(this.x);
}Penetapan Ulang adalah Kesalahan
Jika Anda mencoba menetapkan nilai baru ke field final, kompiler akan menghentikannya. Kesalahan tersebut ditemukan sebelum program Anda dijalankan.
final p = Point(3);
p.x = 9; // compile errorfinal dibandingkan const
Gunakan const saat nilainya sudah diketahui pada waktu kompilasi, dan final saat nilainya dihitung ketika program berjalan. Keduanya melarang penetapan ulang setelahnya.
const pi = 3.14;
final now = DateTime.now();Konstruktor const
Berikan sebuah kelas konstruktor const agar Dart dapat membuat instans yang benar-benar tetap. Semua field-nya sendiri harus bersifat final.
class Color {
final int rgb;
const Color(this.rgb);
}Instans const yang Dibagikan
Dua objek const yang identik sebenarnya adalah instans yang sama di memori. Dart menggunakannya kembali sehingga menghemat ruang dan waktu.
const a = Color(0);
const b = Color(0);
print(identical(a, b)); // trueDangkal dibandingkan Mendalam
Field final mencegah penetapan ulang, tetapi tidak membekukan sesuatu yang ditunjuknya. Sebuah List final masih dapat menerima penambahan item.
final nums = [1, 2];
nums.add(3); // allowed!Tujuan Immutabilitas Mendalam
Immutabilitas mendalam berarti tidak ada apa pun yang dapat dijangkau dari objek tersebut yang boleh berubah. Anda memerlukan lebih dari sekadar final untuk mencapainya sepenuhnya.
Membekukan Koleksi
Bungkus sebuah daftar dengan List.unmodifiable agar setiap upaya menambahkan atau menghapus elemen menimbulkan kesalahan. Kini seluruh strukturnya tetap beku.
final tags = List.unmodifiable([1, 2]);
tags.add(3); // throws at runtimeLiteral Koleksi const
Awali literal dengan const untuk mendapatkan koleksi yang tidak dapat diubah secara mendalam dan dibuat saat kompilasi. Koleksi tersebut sama sekali tidak dapat dimodifikasi.
const days = ['Mon', 'Tue'];
// days.add(...) is forbiddenMengapa Ini Penting
Data yang tidak dapat diubah aman untuk thread, mudah disimpan dalam cache, dan mendukung pengelolaan status di Flutter. Bug akibat mutasi tersembunyi pun hilang begitu saja.
Pemeriksaan Singkat
Satu pemeriksaan terakhir tentang final dan data yang tidak dapat diubah.
Ringkasan
Anda telah mempelajari bahwa final mengunci field, const mengunci nilai saat kompilasi, dan immutabilitas mendalam memerlukan koleksi unmodifiable atau const. 🎉
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Field final dan Immutabilitas Mendalam” gratis?
Ya — teks lengkap “Field final dan Immutabilitas Mendalam” 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 “Field final dan Immutabilitas Mendalam”?
Membangun objek yang tidak pernah berubah 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 1 dari 4.
Berapa lama pelajaran “Field final dan Immutabilitas Mendalam” 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