late
- Dart kursu
- Başlangıç
- Ders 74/116
- 5 dk
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
void main() {
// late değişken tanımla
// değer ata ve yazdır
}Örnek çözüm
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ı
void main() {
____ String description;
description = 'Merhaba';
print(description);
}
void main() {
late String description;
description = 'Merhaba';
print(description);
}
Açıklama: late gecikmiş başlatma belirtir.