Junior — Middle
Koja je uloga svojstva 'by lazy' u Kotlinu i u kojim scenarijima je njegovo korišćenje prikladno?
sobes.tech АИ
Одговор од АИ
U Kotlinu, svojstvo s modifikatorom by lazy inicijalizuje se lenjo, što znači da se vrednost računa samo pri prvom pristupu svojstvu, a ne pri kreiranju objekta. Ovo je korisno kada je inicijalizacija zahtevna ili nije uvek potrebna.
Primer upotrebe:
val heavyResource by lazy {
println("Inicijalizacija")
"Rezultat"
}
fun main() {
println("Pre pristupa")
println(heavyResource) // Ovde se dešava inicijalizacija
println(heavyResource) // Ne dešava se ponovo inicijalizacija
}
Scenariji upotrebe:
- Odložena inicijalizacija objekata koji nisu uvek potrebni.
- Optimizacija performansi.
- Sigurna inicijalizacija u višestrukim nitima (podrazumevano,
lazyje siguran za niti).