Back to questions
Middle
87
questionbank
Какие стандартные делегаты ты знаешь?
Sobes Copilot
Get answers in real time
Answer from AI
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 // Разрешаем только неотрицательные значения }