0Pricing
Dart Academy · Pelajaran

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 error

final 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)); // true

Dangkal 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 runtime

Literal 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 forbidden

Mengapa 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

  1. Field final dan Immutabilitas Mendalam
  2. Class sealed dan switch Menyeluruh
  3. Modifier base, interface, dan final
  4. copyWith dan Kesetaraan Nilai
← Kembali ke Dart Academy