CodeBlanks Logo Icon CodeBlanks

Nullable türler

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

main.dart
void main() {
  // nullable bir değişken tanımla

  // 'Ayşe' ata ve yazdır
}

Örnek çözüm

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

Soru
void main() {
  String? ____;
  print(name);
}
Cevap
void main() {
  String? name;
  print(name);
}

Açıklama: String? nullable, sonra değişken adı gelir.

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