Back to questions
Junior — Middle
69
Какова роль свойства 'by lazy' в Kotlin и в каких сценариях его использование уместно?
Companies where asked
trendtech
Answer from AI
sobes.tech AI
В Kotlin свойство с модификатором by lazy инициализируется лениво — то есть значение вычисляется только при первом обращении к свойству, а не при создании объекта. Это полезно, когда инициализация ресурсоёмкая или не всегда нужна.
Пример использования:
val heavyResource by lazy {
println("Инициализация")
"Результат"
}
fun main() {
println("Перед обращением")
println(heavyResource) // Здесь происходит инициализация
println(heavyResource) // Повторная инициализация не происходит
}
Сценарии использования:
- Отложенная инициализация объектов, которые нужны не всегда.
- Оптимизация производительности.
- Безопасная инициализация в многопоточном окружении (по умолчанию
lazyпотокобезопасен).