Sobes.tech
Junior — Middle

Jaká je role vlastnosti 'by lazy' v Kotlinu a v jakých scénářích je její použití vhodné?

sobes.tech AI

Odpověď od AI

V Kotlinu je vlastnost s modifikátorem by lazy inicializována líně, což znamená, že hodnota je vypočítána pouze při prvním přístupu k vlastnosti, nikoli při vytváření objektu. To je užitečné, když je inicializace náročná na zdroje nebo není vždy potřeba.

Příklad použití:

val heavyResource by lazy {
    println("Inicializace")
    "Výsledek"
}

fun main() {
    println("Před přístupem")
    println(heavyResource) // Zde dojde k inicializaci
    println(heavyResource) // Inicializace se neopakuje
}

Scénáře použití:

  • Odložená inicializace objektů, které nejsou vždy potřeba.
  • Optimalizace výkonu.
  • Bezpečná inicializace v prostředí s více vlákny (výchozí lazy je vlákno bezpečné).