CodeBlanks Logo Icon CodeBlanks

late

late ile gecikmiş başlatma öğrenirsin.

late anahtar kelimesi

late bir değişkenin başlangıçta değer verilmeden tanımlanabileceğini, ama ilk kullanımdan önce mutlaka atanacağını söyler. Örnek: late String description;.

Bu, nullable yapmadan gecikmiş başlatma sağlar. description non-nullable kalır; null kontrolü gerekmez. Ancak ilk okumadan önce değer atanmazsa çalışma anında hata verir.

late özellikle pahalı bir hesabı yalnızca gerektiğinde çalıştırmak için kullanışlıdır. Örneğin bir yapılandırma dosyasını ilk erişimde yüklemek gibi. Bu desene lazy initialization denir.

late vs nullable

late ve ? farklı amaçlara hizmet eder. late String name; name'in sonradan atanacağını, ama non-nullable kalacağını söyler. String? name; ise name null olabilir der.

late kullanırsan null kontrolü gerekmez; değer atanmış olarak ele alırsın. nullable kullanırsan her erişimde null riskini düşünmen gerekir.

Hangisini seçeceğin veriye bağlı: bir değerin mutlaka var olacağı ama henüz verilmediği durumlar için late; değerin gerçekten boş olabileceği durumlar için nullable.

Uygulama late kullan

Bir late String description tanımla. Sonra description = 'Merhaba Dart' ata ve print(description) ile yazdır.

Başlangıç kodu

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

  // değer ata ve yazdır
}

Örnek çözüm

main.dart
void main() {
  late String description;
  description = 'Merhaba Dart';
  print(description);
}

Beklenen çıktı

Merhaba Dart

Soru ve cevaplar

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

1 late kavramlarını eşleştir

Kavram Anlamı
late Gecikmiş başlatma
ilk kullanım Atama zamanı
non-nullable Tür özelliği
lazy Tembel başlatma

2 late değişken ne zaman hata verir?

  • Tanımda
  • Her zaman
  • Asla
  • İlk okumadan önce atanmazsa Doğru cevap

Açıklama: late değişken ilk okumadan önce atanmalı, yoksa hata verir.

3 late tanımı

Soru
void main() {
  ____ String description;
  description = 'Merhaba';
  print(description);
}
Cevap
void main() {
  late String description;
  description = 'Merhaba';
  print(description);
}

Açıklama: late gecikmiş başlatma belirtir.

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