CodeBlanks Logo Icon CodeBlanks

! operatörü

! 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

main.dart
void main() {
  // nullable değişken tanımla ve 'Ayşe' ata

  // ! ile length yazdır
}

Örnek çözüm

main.dart
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

Soru
void main() {
  String? name = 'Ayşe';
  print(name____.length);
}
Cevap
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

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