CodeBlanks Logo Icon CodeBlanks

Sound null safety

Sound null safety ve tür sistemi öğrenirsin.

Sound null safety

Sound null safety, Dart 2.12 ile gelen ve null referans hatalarını derleme anında yakalayan bir tür sistemi özelliğidir. Bir tür varsayılan olarak non-nullable'dır: int x null alamaz.

Nullable yapmak için int? yazılır. Bu, 'bir değişken null olabilir mi?' sorusunun türde cevaplanmasını sağlar. null yalnızca nullable türlere atanır; aksi halde derleme hatası verilir.

Nullable ile çalışmak

Nullable bir değeri non-nullable bağlamda kullanmak için denetim gerekir. Üç yaygın yol: ! ile null olmamasını garanti etmek (maybeAge!), ?? ile varsayılan vermek (maybeAge ?? 0) ve if (maybeAge != null) ile denetlemek.

! risklidir: değer null ise çalışma anında hata fırlatır. ?? güvenlidir; null yerine varsayılan döner. Kodu güvenli tutmak için ?? tercih edilir.

Uygulama Nullable yaş hesapla

Bir int? maybeAge değişkeni alıp int döndüren int resolveAge(int? maybeAge) => maybeAge ?? 0; fonksiyonunu tanımla. main içinde print(resolveAge(null)); ve print(resolveAge(25)); çağrılarını ekle.

Başlangıç kodu

main.dart
void main() {
  // resolveAge fonksiyonunu tanımla
  // null ve 25 çağrılarını yazdır
}

Örnek çözüm

main.dart
int resolveAge(int? maybeAge) => maybeAge ?? 0;

void main() {
  print(resolveAge(null));
  print(resolveAge(25));
}

Beklenen çıktı

0
25

Soru ve cevaplar

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

1 Nullable tür bildirimi

Soru
int? maybeAge = ____;
print(maybeAge);
Cevap
int? maybeAge = null;
print(maybeAge);

Açıklama: nullable (int?) bir değişkene null atanabilir.

2 Sound null safety ne sağlar?

  • Çöp toplayıcıyı kaldırır
  • Daha hızlı çıktı üretir
  • Null referans hatalarını derleme anında yakalar Doğru cevap
  • Tüm değişkenleri nullable yapar

Açıklama: sound null safety null hatalarını derleme anında yakalar.

3 Null safety operatörlerini eşleştir

Kavram Anlamı
int Non-nullable
int? Nullable
! Null değil garanti
?? Varsayılan değer

Uzman bölümündeki tüm dersler