Null-aware operatörler
- Dart kursu
- Başlangıç
- Ders 72/116
- 5 dk
??, ?. 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
void main() {
// nullable bir değişken tanımla (null)
// varsayılan ile yazdır
}Örnek çözüm
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ü
void main() {
String? name;
print(name ____ 'Misafir');
}
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?
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.