Junior — Middle
W jakim kontekście wywoływana jest funkcja lazy()?
sobes.tech AI
Odpowiedź od AI
Funkcja lazy() w Android (często w kontekście Kotlin) służy do leniwej inicjalizacji zmiennych. Wywołanie funkcji lazy() następuje w momencie definiowania właściwości, ale lambda przekazana do lazy jest wykonywana tylko przy pierwszym odwołaniu się do tej właściwości. W ten sposób kod wewnątrz lazy jest wykonywany w kontekście pierwszego dostępu do wartości, a nie podczas tworzenia obiektu lub klasy.
Przykład:
val myValue: String by lazy {
println("Obliczanie wartości")
"Witaj, Świecie!"
}
fun main() {
println("Przed pierwszym dostępem")
println(myValue) // Tu wywoływana jest lambda wewnątrz lazy
println(myValue) // Wartość jest już obliczona, lambda nie jest wywoływana
}
W tym przykładzie lambda wewnątrz lazy zostanie wykonana tylko raz przy pierwszym odwołaniu do myValue.