Sobes.tech
Junior — Middle

Em que contexto a chamada da função lazy() é executada?

sobes.tech IA

Resposta da IA

A função lazy() no Android (mais frequentemente no contexto do Kotlin) é usada para a inicialização preguiçosa de variáveis. A chamada da função lazy() ocorre no momento da definição da propriedade, mas a lambda passada para lazy é executada apenas na primeira vez que essa propriedade é acessada. Assim, o código dentro de lazy é executado no contexto do primeiro acesso ao valor, e não na criação do objeto ou classe.

Exemplo:

val myValue: String by lazy {
    println("A calcular valor")
    "Olá, Mundo!"
}

fun main() {
    println("Antes do primeiro acesso")
    println(myValue) // Aqui ocorre a chamada à lambda dentro de lazy
    println(myValue) // O valor já foi calculado, a lambda não é chamada novamente
}

Neste exemplo, a lambda dentro de lazy será executada apenas uma vez, no primeiro acesso a myValue.