Sobes.tech
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.