Junior — Middle
V jakém kontextu je volána funkce lazy()?
sobes.tech AI
Odpověď od AI
Funkce lazy() v Androidu (často v kontextu Kotlinu) slouží k líné inicializaci proměnných. Volání funkce lazy() nastává v okamžiku definice vlastnosti, ale lambda předaná do lazy se vykoná pouze při prvním přístupu k této vlastnosti. Tím se kód uvnitř lazy vykoná v kontextu prvního přístupu k hodnotě, nikoli při vytváření objektu nebo třídy.
Příklad:
val myValue: String by lazy {
println("Výpočet hodnoty")
"Ahoj, světe!"
}
fun main() {
println("Před prvním přístupem")
println(myValue) // Zde dojde k volání lambda uvnitř lazy
println(myValue) // Hodnota je již vypočtena, lambda se nevolá znovu
}
V tomto příkladu se lambda uvnitř lazy vykoná pouze jednou při prvním přístupu k myValue.