CodeBlanks Logo Icon CodeBlanks

lateinit

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

Main.kt
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

Soru
lateinit var config: ____
Cevap
lateinit var config: String

Açıklama: lateinit String gibi referans türleriyle kullanılır.

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