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е потокобезопасен).