Pelajaran 22
Null safety
?, !, ??, ?., late — wajib sejak Dart 2.12.
Pahami konsepnya
Dart null safety: tipe biasa TIDAK BISA null. String nama = null ERROR. String? nama BOLEH null. Operator: ?. (akses aman), ?? (cadangan), ! (assert non-null), ??= (assign if null).
late menunda inisialisasi: late String deskripsi; — diisi nanti tapi dijamin sebelum dibaca. Berguna untuk dependency injection dan field yang dihitung setelah construction.
Coba contoh kode
int panjangWajib(String? teks) => teks!.length;
void tampilkan(String? nama) {
print(nama ?? "Tamu");
print(nama?.length);
}
void main() {
tampilkan(null); // Tamu, null
tampilkan("Ari"); // Ari, 3
print(panjangWajib("Ari")); // 3; ! menegaskan non-null
late String deskripsi;
deskripsi = "baru diisi";
print(deskripsi);
}?. mengembalikan null alih-alih error bila objek null. ! memaksa non-null (error bila ternyata null). late menunda wajib isi.
Latihan singkat
Uji: String? nama = null; print(nama ?? "Tamu") — harus `Tamu`.