lateinit
- Kotlin kursu
- Başlangıç
- Ders 10/116
- 5 dk
lateinit var ile gecikmiş başlatma öğrenirsin.
lateinit
Bazen bir değişkeni tanımladığında değeri hemen veremezsin; örneğin bir yapılandırma (configuration) sonradan yüklenebilir. lateinit var ile bir değişkeni şimdilik tanımlayıp değerini sonra atayabilirsin.
lateinit yalnızca var ile ve yalnızca referans türleri (ör. String, sınıf örnekleri) için kullanılabilir; ilkel türler (Int, Double) için kullanılamaz.
lateinit var config: String
fun main() {
config = "aktif"
println(config)
}Uygulama lateinit'i başlat
Üst düzeyde lateinit var config: String tanımla. fun main() içinde önce config = "aktif" ata, sonra println(config) ile yazdır.
Örnek çözüm
lateinit var config: String
fun main() {
config = "aktif"
println(config)
}Beklenen çıktı
aktif
lateinit güvenliği
lateinit ile tanımlanmış bir değişkene değer atanmadan önce erişirsen Kotlin UninitializedPropertyAccessException fırlatır. Bunu önlemek için ::config.isInitialized ile başlatılıp başlatılmadığını kontrol edebilirsin.
Bu özellik özellikle bağımlılık enjekte eden (dependency injection) çatılarda kullanışlıdır; orada nesneler yapılandırma aşamasında sonra bağlanır. Bu yüzden lateinit, enjeksiyon öncesi tanımlama sonrası başlatma düzeninde yaygındır.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 lateinit: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
lateinit |
Sonra atanır |
var |
Değişebilir |
val |
Değişmez |
const val |
Derleme zamanı |
2 lateinit aşağıdakilerden hangisiyle kullanılamaz?
- String
- Int Doğru cevap
- Bir sınıf örneği
- List
Açıklama: lateinit ilkel türlerle (Int, Double) kullanılamaz.
3 lateinit: eksik parçayı tamamla
lateinit var config: ____
lateinit var config: String
Açıklama: lateinit String gibi referans türleriyle kullanılır.