Назад к вопросам
Middle
67
questionbank
Какие стандартные делегаты ты знаешь?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
by lazy— используется для отложенной инициализации свойства. Значение вычисляется при первом обращении к свойству и кешируется.val lazyValue: String by lazy { println("initialized") // Выполнится только при первом обращении "Hello" }Delegates.observable— делегат, который позволяет выполнять действие при каждом изменении значения свойства.import kotlin.properties.Delegates var name: String by Delegates.observable("initial value") { prop, old, new -> println("Value changed for ${prop.name} from $old to $new") }Delegates.vetoable— делегат, который позволяет перехватить изменение значения свойства и отменить его на основе некоторого условия.import kotlin.properties.Delegates var age: Int by Delegates.vetoable(10) { prop, old, new -> new >= 0 // Разрешаем только неотрицательные значения }