by lazy
- Kotlin kursu
- Başlangıç
- Ders 11/116
- 5 dk
by lazy ile tembel başlatma öğrenirsin.
by lazy
by lazy ile bir val değişkeninin değerini ilk erişimde hesaplayabilirsin. Bu, pahalı bir işlemin yalnızca gerçekten gerekirse yapılmasını sağlar.
lazy bir temsilci (delegate) olur; değişkene ilk erişildiğinde blok çalışır ve sonuç saklanır, sonraki erişimlerde aynı sonuç döner.
val bigData by lazy {
println("Hesaplanıyor")
1 + 2 + 3
}
fun main() {
println(bigData) // Hesaplanıyor, 6
println(bigData) // 6 (yeniden hesaplanmaz)
}Uygulama by lazy dene
Üst düzeyde val result by lazy { 2 * 3 } tanımla. fun main() içinde println(result) ile yazdır.
Örnek çözüm
val result by lazy { 2 * 3 }
fun main() {
println(result)
}Beklenen çıktı
6
by lazy ve lateinit farkı
by lazy ve lateinit ikisi de ertelenmiş başlatma sağlar ama farklı yollarla. by lazy yalnızca val için kullanılır ve değer bir bloktan hesaplanır; ilk erişimde otomatik çalışır.
lateinit ise yalnızca var için kullanılır ve değeri sen elle atarsın; erişimden önce atanmazsa istisna fırlatır. by lazy iş parçacığı güvenlidir (thread-safe), lateinit değildir.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 by lazy: eksik parçayı tamamla
val result ____ lazy { 1 + 2 }
val result by lazy { 1 + 2 }
Açıklama: by lazy ile tembel değer tanımlanır.
2 by lazy ne zaman hesaplar?
- Derleme zamanında
- Her erişimde
- İlk erişimde Doğru cevap
- Hiçbir zaman
Açıklama: by lazy yalnızca ilk erişimde hesaplar ve saklar.
3 by lazy: kavramları eşleştir
| Kavram | Anlamı |
|---|---|
by lazy |
İlk erişimde |
lateinit |
Sonra atanır |
const val |
Derleme zamanı |
val |
Bir kez atanır |