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).