← Kembali ke kursus
Pelajaran kursus · Dart
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`.