Junior — Middle
V akom kontexte sa vykonáva volanie funkcie lazy()?
sobes.tech AI
Odpoveď od AI
Funkcia lazy() v Android (častejšie v kontexte Kotlinu) sa používa na lenivú inicializáciu premenných. Volanie funkcie lazy() nastáva v momente definície vlastnosti, ale lambda odovzdaná do lazy sa vykoná iba pri prvom prístupe k tejto vlastnosti. Tým sa kód vo vnútri lazy vykoná v kontexte prvého prístupu k hodnote, nie pri vytváraní objektu alebo triedy.
Príklad:
val myValue: String by lazy {
println("Výpočet hodnoty")
"Ahoj, svet!"
}
fun main() {
println("Pred prvým prístupom")
println(myValue) // Tu sa volá lambda vo vnútri lazy
println(myValue) // Hodnota je už vypočítaná, lambda sa nevolá znovu
}
V tomto príklade sa lambda vo vnútri lazy vykoná iba raz pri prvom prístupe k myValue.