Выбор ответа Junior Делегаты обновлено

Delegates.observable

Вопрос

Когда вызывается обработчик Delegates.observable(initial) { prop, old, new -> }?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: После каждого присваивания, со старым и новым значением. observable вызывает обработчик после каждого присваивания, даже если значение то же самое.

Варианты ответа

  1. После каждого присваивания, со старым и новым значениемправильный ответ
  2. Только при первом чтении свойства, как у lazy
  3. До присваивания, и обработчик может его отменить
  4. Только если новое значение отличается от старого

Разбор

observable вызывает обработчик после каждого присваивания, даже если значение то же самое. Отменить присваивание умеет vetoable: его лямбда вызывается до изменения и возвращает Boolean. Ленивость при первом чтении это lazy.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.