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