Junior — Middle
В какъв контекст се извършва извикването на функцията lazy()?
sobes.tech AI
Отговор от AI
Функцията lazy() в Android (по-често в контекста на Kotlin) се използва за лениво инициализиране на променливи. Вика на функцията lazy() се случва в момента на дефиниране на свойството, но лямбдата, предадена в lazy, се изпълнява само при първия достъп до това свойство. Така кодът вътре в lazy се изпълнява в контекста на първия достъп до стойността, а не при създаването на обекта или класа.
Пример:
val myValue: String by lazy {
println("Изчисляване на стойността")
"Здравей, свят!"
}
fun main() {
println("Преди първия достъп")
println(myValue) // Тук се извиква лямбдата вътре в lazy
println(myValue) // Стойността вече е изчислена, лямбдата не се извиква
}
В този пример лямбдата вътре в lazy ще се изпълни само веднъж при първия достъп до myValue.