CodeBlanks Logo Icon CodeBlanks

Null-aware operatörler

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

Null-aware operatörler

Dart, null safety ile birlikte null ile başa çıkmak için özel operatörler sunar: ??, ?. ve ??=.

?? sol taraf null ise sağ tarafı verir: name ?? 'Misafir' — eğer name null ise 'Misafir' döner, değilse name'in değeri.

?. yalnızca null değilse üyeye erişir: user?.name — eğer user null ise null döner, değilse name'i çağırır. ??= ise null ise atama yapar.

Uygulama ?? ile varsayılan

String? name = null; tanımla. print(name ?? 'Misafir') ile yazdır. name null olduğu için 'Misafir' çıktısını görmelisin.

Başlangıç kodu

main.dart
// ?? operatörünü kullan

Örnek çözüm

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

Beklenen çıktı

Misafir

?? ve ??= farkı

?? bir ifade döndürür: name ?? 'Misafir' bir değer verir ama name'i değiştirmez. name hâlâ null'dur.

??= ise atama yapar: name ??= 'Misafir'; — eğer name null ise onu 'Misafir' yapar. Yani sonradan name'i okursan 'Misafir' görürsün.

Özet: ?? okurken varsayılan, ??= ise yazarken varsayılan atar. İhtiyacına göre seçersin.

Soru ve cevaplar

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

1 Varsayılan operatörü

Soru
String? name; print(name ____ 'Misafir');
Cevap
String? name; print(name ?? 'Misafir');

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

2 ?. operatörü ne yapar?

  • Değişkeni siler
  • Null zorlar
  • Null ise çağırmaz Doğru cevap
  • Hata fırlatır

Açıklama: ?. null ise üyeyi çağırmaz, null döner.

3 Null-aware operatörler

Kavram Anlamı
?? Varsayılan
?. Güvenli çağrı
??= Null ise ata
? Nullable

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