class Cat { init() { print(1) self.age = 3 // didSet呼ばれない print(2) self.age = { self.age }() // didSet呼ばれない print(3) self.refreshAge() // didSet呼ばれる print(4) self.age = { self.age }() // didSet呼ばれない ( これがちょっと変な感じ ) } var age: Int { didSet { print("age:did set") } } func refreshAge() { self.age = { self.age }() } } Cat()