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.