perimeter的 setter 中,新值的名字是newValue。你可以在set之后显式的设置一个名字。

注意EquilateralTriangle类的构造器执行了三步:

  1. 设置子类声明的属性值

  2. 调用父类的构造器

  3. 改变父类定义的属性值。其他的工作比如调用方法、getters和setters也可以在这个阶段完成。

如果你不需要计算属性,但是仍然需要在设置一个新值之前或者之后运行代码,使用willSetdidSet。比如,下面的类确保三角形的边长总是和正方形的边长相同。