Nullable türler
- Dart kursu
- Başlangıç
- Ders 71/116
- 5 dk
String? ve nullable türleri öğrenirsin.
Nullable türler
Dart 3'te bir tür varsayılan olarak null alamaz. String name; yazarsan name mutlaka bir değer taşımalıdır. Null da bir değer olabilecekse türün sonuna ? koyarsın: String? name;.
Bu yazımda name ya bir String'dir ya da null. Soru işareti, 'bu değişken boş olabilir' demektir. Nullable yapmadan null atamak derleme hatasıdır.
Nullable türler, 'belki değer vardır, belki yok' durumlarını anlatır. Örneğin bir form alanı boş bırakılabilir; bu yüzden türü String? olur. Böylece derleyici seni null riski konusunda uyarır.
Null atanışı
Nullable bir değişkene doğrudan null verebilirsin: String? name = null;. Ayrıca değer atamadan bırakırsan Dart varsayılan olarak null kabul eder: String? name; ile String? name = null; aynı anlama gelir.
Bir nullable değişkeni kullanırken dikkatli olmalısın. Örneğin name.length çağrısı name null ise hata verir. Bu yüzden null-aware operatörler ve null kontrolü gerekir; ileriki derslerde göreceğiz.
Null olmayan bir değer atadığında artık güvenle kullanabilirsin: name = 'Ayşe'; print(name.length);. Ama derleyici yine de nullable türü için uyarı verebilir; bu durumda ! ya da null kontrolü gerekir.
Uygulama Nullable tanımla ve ata
Bir String? name tanımla (null başlasın). Sonra name = 'Ayşe' ata ve print(name) ile yazdır.
Başlangıç kodu
void main() {
// nullable bir değişken tanımla
// 'Ayşe' ata ve yazdır
}Örnek çözüm
void main() {
String? name;
name = 'Ayşe';
print(name);
}Beklenen çıktı
Ayşe
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Türleri eşleştir
| Kavram | Anlamı |
|---|---|
String |
Metin, null almaz |
String? |
Metin, null alabilir |
int |
Sayı, null almaz |
int? |
Sayı, null alabilir |
2 Hangisi nullable?
- String? Doğru cevap
- int
- String
- double
Açıklama: String? null alabilen türdür.
3 Nullable tanım
void main() {
String? ____;
print(name);
}
void main() {
String? name;
print(name);
}
Açıklama: String? nullable, sonra değişken adı gelir.