CodeBlanks Logo Icon CodeBlanks

Null-aware operatörler

??, ?. ve ??= operatörlerini öğrenirsin.

Null-aware operatörler

Dart, null ile başa çıkmak için üç kısa operatör sunar. ?? null birleşim: name ?? 'Misafir' — name null değilse name'i, null ise 'Misafir' döndürür.

?. null-aware erişim: name?.length — name null değilse length'i verir, null ise null döner. Böylece name.length hatasından korunursun.

??= null-aware atama: name ??= 'Misafir'; — name null ise 'Misafir' atar, değilse dokunmaz. Üçü de null güvenliğini kısa yoldan sağlar.

?. ile güvenli erişim

?. operatörü bir nullable değerin üyesine güvenli erişim sağlar. name?.length — name null değilse length'i verir, null ise null döner. Hata fırlatılmaz.

Bu, name.length yerine geçer; çünkü name null ise çöker. ?. ile 'boşsa boş bırak' demiş olursun.

Sonuç nullable olur: int? len = name?.length;. Böylece sonraki adımlarda yine null-aware düşünmek gerekir. Zincirleme de mümkündür: user?.address?.city.

Uygulama ?? ile yazdır

Bir String? name tanımla (null başlasın). print(name ?? 'Misafir') ile yazdır.

Başlangıç kodu

main.dart
void main() {
  // nullable bir değişken tanımla (null)

  // varsayılan ile yazdır
}

Örnek çözüm

main.dart
void main() {
  String? name;
  print(name ?? 'Misafir');
}

Beklenen çıktı

Misafir

Soru ve cevaplar

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

1 ?? operatörü

Soru
void main() {
  String? name;
  print(name ____ 'Misafir');
}
Cevap
void main() {
  String? name;
  print(name ?? 'Misafir');
}

Açıklama: ?? sol null ise sağ tarafı verir.

2 Operatörleri eşleştir

Kavram Anlamı
?? Varsayılan değer
. Güvenli erişim
??= Null ise ata
? Nullable tür

3 name ?? 'Misafir' ne döner?

main.dart
String? name;
print(name ?? 'Misafir');
  • name null ise null
  • name null ise 'Misafir' Doğru cevap
  • Her zaman name
  • Her zaman 'Misafir'

Açıklama: ?? sol null ise sağ tarafı döndürür.

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