Sobes.tech
Junior — Middle

Каква е ролята на свойството 'by lazy' в Kotlin и в кои сценарии е подходящо използването му?

sobes.tech AI

Отговор от AI

В Kotlin свойство с модификатора by lazy се инициализира лениво — то есть стойността се изчислява само при първия достъп до свойството, а не при създаването на обекта. Това е полезно, когато инициализацията е ресурсоемка или не винаги е необходима.

Пример за използване:

val heavyResource by lazy {
    println("Инициализация")
    "Резултат"
}

fun main() {
    println("Преди достъп")
    println(heavyResource) // Тук се случва инициализация
    println(heavyResource) // Повторна инициализация не се случва
}

Сценарии на използване:

  • Отложена инициализация на обекти, които не са винаги необходими.
  • Оптимизация на производителността.
  • Безопасна инициализация в многонишкови среди (по подразбиране lazy е потокобезопасен).