Назад к вопросам
Junior — Middle
73
Можешь назвать типы делегатов, используемых в Kotlin?
Компании, где спрашивали
Ubic
Ответ от нейросети
sobes.tech AI
В Kotlin существуют несколько типов делегатов, которые упрощают работу с свойствами:
-
Стандартные делегаты:
lazy— отложенная инициализация свойства при первом обращении.observable— позволяет отслеживать изменения значения свойства.vetoable— похож на observable, но с возможностью отклонить изменение.notNull— свойство, которое должно быть инициализировано до первого доступа, иначе бросается исключение.
-
Делегаты для коллекций: например, делегаты для хранения значений в
Map. -
Пользовательские делегаты: можно реализовать интерфейс
ReadOnlyPropertyилиReadWritePropertyдля создания собственных делегатов.
Пример использования lazy:
val lazyValue: String by lazy {
println("Вычисление значения")
"Привет"
}
fun main() {
println(lazyValue) // Значение вычислится здесь
println(lazyValue) // Используется кешированное значение
}