CodeBlanks Logo Icon CodeBlanks

Null check

if (x != null) ile null kontrolünü öğrenirsin.

Null check

En güvenli null yönetimi if (x != null) kontrolüdür. Bu bloğun içinde x artık non-nullable olarak ele alınır; bu davranışa type promotion (tür yükseltme) denir.

Örnek: String? name = 'Ayşe'; if (name != null) { print(name.length); }. Blok içinde name null olmadığı için .length güvenle çağrılır.

Bu desen ! ve ?. yerine daha güvenlidir; çünkü kontrolü açıkça yapar ve blok içinde tür garantisi verir. Karmaşık koşullarda dart garantiyi sınırlayabilir; bu durumda ! yardımcı olur.

Promotion sınırları

Type promotion çoğu durumda çalışır ama bazı sınırları vardır. Eğer değişken bir lambda içinde değiştirilebiliyorsa, Dart blok içinde garantiyi kaldırabilir. Bu durumda ! veya yerel bir kopya almak gerekir.

Örnek: String? name = 'Ayşe'; if (name != null) { var f = () => print(name); }. Burada lambda name'i sonradan değiştirebilir; bu yüzden Dart garantiyi kaldırır.

Pratikte bu nadir görülür. Basit if (x != null) bloklarında promotion güvenle işler. Yine de karmaşık durumlarda ! veya yerel kopya çözüm olabilir.

Uygulama Null check ile length

Bir String? name tanımla ve 'Ayşe' ata. if (name != null) ile kontrol et; blok içinde print(name.length) çağrısı ekle.

Başlangıç kodu

main.dart
void main() {
  // nullable değişken tanımla ve 'Ayşe' ata

  // if ile null kontrolü ve length yazdır
}

Örnek çözüm

main.dart
void main() {
  String? name = 'Ayşe';
  if (name != null) {
    print(name.length);
  }
}

Beklenen çıktı

4

Soru ve cevaplar

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

1 if (name != null) bloğunda name?

  • String (non-nullable) Doğru cevap
  • null
  • Yine String?
  • Hata verir

Açıklama: null kontrolü sonrası tür non-nullable olur.

2 Null yöntemlerini eşleştir

Kavram Anlamı
if (x != null) Tür yükseltme
?. Güvenli erişim
! Null assertion
?? Varsayılan değer

3 if ile null kontrolü

Soru
void main() {
  String? name = 'Ayşe';
  if (name ____ != null) {
    print(name.length);
  }
}
Cevap
void main() {
  String? name = 'Ayşe';
  if (name != != null) {
    print(name.length);
  }
}

Açıklama: != ile 'null değil' koşulu kurulur.

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