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