CodeBlanks Logo Icon CodeBlanks

Null safety

null ve nullable türleri (?) öğrenirsin.

Null safety

Dart 3'te null safety varsayılan olarak açıktır. Bir değişken null olamaz; eğer null olabileceğini açıkça belirtmezsen. Bu, beklenmedik null hatalarını derleme aşamasında yakalar.

Bir türün sonuna ? koyarak nullable yaparsın: String? yani 'bir String ya da null'. Örneğin String? middleName; null olabilir.

Bu sistemle 'bu değişken asla null değil' garantisi vardır. Nullable türleri kullanmadan önce null kontrolü yapman gerekir; aksi halde derleyici uyarır.

Uygulama Nullable değişken

String? name = null; şeklinde nullable bir name değişkeni tanımla ve print(name); ile yazdır.

Başlangıç kodu

main.dart
// nullable değişkeni tanımla

Örnek çözüm

main.dart
void main() {
  String? name = null;
  print(name);
}

Beklenen çıktı

null

Null safety ne işe yarar?

Null safety'in en büyük yararı, null hatalarını derleme zamanında yakalamasıdır. Eski dillerde bir değişkenin null olup olmadığını çalışana kadar bilemezdin; Dart bunu derleme aşamasında söyler.

Bu, 'null pointer exception' gibi ünlü hataları azaltır. Nullable bir değişkeni kullanmadan önce if (x != null) ya da ? operatörüyle kontrol edersin; ileriki derste göreceğiz.

Sonuç: daha az sürpriz, daha güvenli kod. Dart 3 ile bu davranış varsayılan; kapatılamaz.

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Null safety kavramları

Kavram Anlamı
String null olamaz
String? null olabilir
null Değer yok
? Nullable işareti

2 Null değeri

Soru
String? email = ____;
Cevap
String? email = null;

Açıklama: null, 'değer yok' anlamına gelir.

3 String ile String? arasındaki fark nedir?

  • İkisi aynıdır
  • String? null olabilir Doğru cevap
  • String daha hızlıdır
  • String? sadece sınıfta

Açıklama: ? null olabilir anlamına gelir.

Başlangıç bölümündeki tüm dersler