! operatörü
- Dart kursu
- Başlangıç
- Ders 73/116
- 5 dk
! ile null assertion'ı öğrenirsin.
! operatörü
! operatörü null assertion yapar: 'bu değerin null olmadığını garanti ediyorum' demiş olursun. name!.length — name'i non-nullable olarak ele alır.
Eğer name gerçekten null ise çalışma anında hata fırlatır. Bu yüzden ! dikkatli kullanılır: yalnızca değerin null olmadığından emin olduğun durumda.
? ve ! birbirinin tersidir: ? türü null alabilir yapar, ! nullable değeri non-nullable kullanır. Pratikte ! yerine null kontrolü tercih edilir; ama bazen kısa yoldan işe yarar.
! vs ?.
! ve ?. her ikisi de nullable değer üzerinde üyeye erişim sağlar, ama davranışları farklıdır. ! null değil diye garanti eder; yanılmırsan hata. ?. null ise null döner; hata yok.
Örnek: name!.length name null ise çöker; name?.length null ise null verir. Hangisini seçeceğin görevine bağlı.
Genel ilke: emin olduğun yerde !, emin olmadığın yerde ?.. ! daha hızlıdır ama risklidir; ?. güvenlidir ama nullable sonuç verir.
Uygulama ! ile length
Bir String? name tanımla ve 'Ayşe' ata. print(name!.length) ile uzunluğu yazdır.
Başlangıç kodu
void main() {
// nullable değişken tanımla ve 'Ayşe' ata
// ! ile length yazdır
}Örnek çözüm
void main() {
String? name = 'Ayşe';
print(name!.length);
}Beklenen çıktı
4
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 name null iken name!.length ne yapar?
- null döner
- 0 döner
- Hata fırlatır Doğru cevap
- Hiçbir şey
Açıklama: ! null değer üzerinde hata fırlatır.
2 ! ile assertion
void main() {
String? name = 'Ayşe';
print(name____.length);
}
void main() {
String? name = 'Ayşe';
print(name!.length);
}
Açıklama: ! nullable değeri non-nullable yapar.
3 Operatörleri eşleştir
| Kavram | Anlamı |
|---|---|
! |
Null assertion |
?. |
Güvenli erişim |
?? |
Varsayılan değer |
? |
Nullable tür |