Sobes.tech
Junior — Middle

Qual é o papel da propriedade 'by lazy' em Kotlin e em que cenários é adequado o seu uso?

sobes.tech IA

Resposta da IA

No Kotlin, uma propriedade com o modificador by lazy é inicializada de forma preguiçosa, ou seja, o valor é calculado apenas na primeira vez que a propriedade é acessada, e não na criação do objeto. Isso é útil quando a inicialização consome muitos recursos ou nem sempre é necessária.

Exemplo de uso:

val heavyResource by lazy {
    println("Inicialização")
    "Resultado"
}

fun main() {
    println("Antes de acessar")
    println(heavyResource) // Aqui ocorre a inicialização
    println(heavyResource) // A inicialização não ocorre novamente
}

Cenários de uso:

  • Inicialização adiada de objetos que nem sempre são necessários.
  • Otimização de desempenho.
  • Inicialização segura em ambientes multithread (por padrão, lazy é thread-safe).