Какова цель willSet и didSet в Swift?

Swift имеет синтаксис объявления свойства, очень похожий на C #: var foo: Int { get { return getFoo() } set { setFoo(newValue) } } Тем не менее, это также имеет willSetи didSetдействия. Они вызываются до и после вызова сеттера, соответственно. Какова их цель, учитывая, что вы можете просто иметь...