Sobes.tech
Junior — Middle

U kom kontekstu se vrši poziv funkcije lazy()?

sobes.tech АИ

Одговор од АИ

Funkcija lazy() u Androidu (češće u kontekstu Kotlin-a) koristi se za lenju inicijalizaciju promenljivih. Poziv funkcije lazy() dešava se u trenutku definisanja svojstva, ali lambda prosleđena u lazy se izvršava samo pri prvom pristupu toj svojstvu. Na taj način, kod unutar lazy se izvršava u kontekstu prvog pristupa vrednosti, a ne prilikom kreiranja objekta ili klase.

Primer:

val myValue: String by lazy {
    println("Računanje vrednosti")
    "Zdravo, svet!"
}

fun main() {
    println("Pre prvog pristupa")
    println(myValue) // Ovde se poziva lambda unutar lazy
    println(myValue) // Vrednost je već izračunata, lambda se ne poziva ponovo
}

U ovom primeru, lambda unutar lazy će se izvršiti samo jednom, pri prvom pristupu myValue.