Sobes.tech
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á lazy je bezpečná pre vlákna).