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.