Что такое Lazy

«Что такое Lazy» — вопрос из категории Kotlin, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Lazy в Kotlin — это делегат для отложенной инициализации свойства. Значение вычисляется только при первом обращении и затем кэшируется. Полезно для ресурсоемких операций или когда свойство может не использоваться.

val heavyObject: HeavyClass by lazy {
    HeavyClass() // Создается только при первом вызове
}

Особенности:

  • По умолчанию потокобезопасный (LazyThreadSafetyMode.SYNCHRONIZED)
  • Можно указать режим (PUBLICATION, NONE для однопоточной среды)
  • Нельзя использовать с var (только val)