Null safety
- Dart kursu
- Başlangıç
- Ders 11/116
- 5 dk
null ve nullable türleri (?) öğrenirsin.
Null safety
Dart 3'te null safety varsayılan olarak açıktır. Bir değişken null olamaz; eğer null olabileceğini açıkça belirtmezsen. Bu, beklenmedik null hatalarını derleme aşamasında yakalar.
Bir türün sonuna ? koyarak nullable yaparsın: String? yani 'bir String ya da null'. Örneğin String? middleName; null olabilir.
Bu sistemle 'bu değişken asla null değil' garantisi vardır. Nullable türleri kullanmadan önce null kontrolü yapman gerekir; aksi halde derleyici uyarır.
Uygulama Nullable değişken
String? name = null; şeklinde nullable bir name değişkeni tanımla ve print(name); ile yazdır.
Başlangıç kodu
// nullable değişkeni tanımlaÖrnek çözüm
void main() {
String? name = null;
print(name);
}Beklenen çıktı
null
Null safety ne işe yarar?
Null safety'in en büyük yararı, null hatalarını derleme zamanında yakalamasıdır. Eski dillerde bir değişkenin null olup olmadığını çalışana kadar bilemezdin; Dart bunu derleme aşamasında söyler.
Bu, 'null pointer exception' gibi ünlü hataları azaltır. Nullable bir değişkeni kullanmadan önce if (x != null) ya da ? operatörüyle kontrol edersin; ileriki derste göreceğiz.
Sonuç: daha az sürpriz, daha güvenli kod. Dart 3 ile bu davranış varsayılan; kapatılamaz.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Null safety kavramları
| Kavram | Anlamı |
|---|---|
String |
null olamaz |
String? |
null olabilir |
null |
Değer yok |
? |
Nullable işareti |
2 Null değeri
String? email = ____;
String? email = null;
Açıklama: null, 'değer yok' anlamına gelir.
3 String ile String? arasındaki fark nedir?
- İkisi aynıdır
- String? null olabilir Doğru cevap
- String daha hızlıdır
- String? sadece sınıfta
Açıklama: ? null olabilir anlamına gelir.