Null-aware operatörler
- Dart kursu
- Başlangıç
- Ders 28/116
- 5 dk
??, ?. 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
// ?? operatörünü kullanÖrnek çözüm
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ü
String? name; print(name ____ 'Misafir');
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 |