Sobes.tech
Back to questions
Junior — Middle
73

Объясните принцип работы делегированных свойств в языке программирования Kotlin.

Answer from AI

sobes.tech AI

В Kotlin делегированные свойства позволяют перенаправлять операции чтения и записи свойства другому объекту — делегату. Это упрощает повторное использование логики доступа к данным.

Синтаксис:

var имяСвойства: Тип by делегат

Например, стандартный делегат lazy инициализирует значение при первом обращении:

val lazyValue: String by lazy {
    println("Вычисление значения")
    "Привет, Kotlin!"
}

fun main() {
    println(lazyValue) // Здесь значение вычислится и выведется
    println(lazyValue) // Здесь значение возьмётся из кеша
}

Можно создавать свои делегаты, реализуя интерфейс ReadOnlyProperty или ReadWriteProperty. Делегаты полезны для реализации свойств с отложенной инициализацией, наблюдением изменений, хранением в карте и т.п.