Junior — Middle
Milyen kontextusban történik a lazy() függvény hívása?
sobes.tech MI
Válasz az MI-től
Az Androidban (gyakran Kotlin kontextusban) a lazy() függvényt változók késleltetett (lazy) inicializálására használják. A lazy() hívás akkor történik, amikor a tulajdonságot meghatározzák, de a lazy-hez átadott lambda csak az első hozzáféréskor fut le. Így a lazy belsejében lévő kód az első hozzáférés kontextusában fut le, nem az objektum vagy osztály létrehozásakor.
Példa:
val myValue: String by lazy {
println("Érték számítása")
"Helló, Világ!"
}
fun main() {
println("Első hozzáférés előtt")
println(myValue) // Itt hívódik meg a lazy belső lambda
println(myValue) // Az érték már kiszámításra került, a lambda nem hívódik meg újra
}
Ebben a példában a lazy belső lambda csak egyszer, az első hozzáféréskor fut le a myValue-hoz.