Junior — Middle
Aká je úloha vlastnosti 'by lazy' v Kotlin a v akých scenároch je jej použitie vhodné?
sobes.tech AI
Odpoveď od AI
V Kotlinu je vlastnosť s modifikátorom by lazy inicializovaná oneskorenie — to znamená, že hodnota sa vypočíta iba pri prvom prístupe k vlastnosti, nie pri vytvorení objektu. To je užitočné, keď je inicializácia náročná na zdroje alebo nie je vždy potrebná.
Príklad použitia:
val heavyResource by lazy {
println("Inicializácia")
"Výsledok"
}
fun main() {
println("Pred prístupom")
println(heavyResource) // Tu dochádza k inicializácii
println(heavyResource) // Opakovaná inicializácia sa neudeje
}
Scenáre použitia:
- Odložená inicializácia objektov, ktoré nie sú vždy potrebné.
- Optimalizácia výkonu.
- Bezpečná inicializácia v prostredí s viacerými vláknami (predvolená
lazyje bezpečná pre vlákna).