Sobes.tech
Junior — Middle

Kokiu kontekstu vykdomas lazy() funkcijos iškvietimas?

sobes.tech AI

Atsakymas iš AI

Android'de (çox vaxt Kotlin kontekstində) lazy() funksiyası dəyişənlərin tənbəl (lazy) başlanması üçün istifadə olunur. lazy() funksiyasının çağırışı, xüsusiyyətin təyin olunduğu zaman baş verir, amma lazy-yə verilmiş lambda yalnız ilk dəfə bu xüsusiyyətə müraciət edildikdə icra olunur. Beləliklə, lazy daxilindəki kod, dəyərə ilk giriş zamanı icra olunur və obyekt və ya sinf yaradılarkən deyil.

Nümunə:

val myValue: String by lazy {
    println("Dəyər hesablanır")
    "Salam, Dünya!"
}

fun main() {
    println("İlk girişdən əvvəl")
    println(myValue) // Burada lazy daxilindəki lambda çağırılır
    println(myValue) // Dəyər artıq hesablanıb, lambda yenidən çağırılmır
}

Bu nümunədə, lazy daxilindəki lambda yalnız bir dəfə, ilk girişdə icra olunacaq.