深入属性

2017-02-15  本文已影响0人  inclee

为什么计算属性不能有默认值

引用苹果官方文档的一句话

In addition to stored properties, classes, structures, and enumerations can define computed properties, which do not actually store a value. Instead, they provide a getter and an optional setter to retrieve and set other properties and values indirectly.
除了存储属性以外,class ,struct,enum还可以定义计算属性,计算属性实际上不存储值,而是通过提供个getter方法和可选的setter方法间接的去获取和设置其他属性的值。

可以看到存储属性作为一个变量或常量在实例中是实实在在存在的,而计算属性实质上确实不存在,对于一个不存在的量也就没有所谓的初始值/默认值的概念。

为什么存储属性没有getter/setter,为什么计算属性没有属性观察器

存储属性才有属性观察器(lazy除外),并且没有get/set
计算属性才有get/set,并且没有属性观察器

从只读上说计算属性和存储属性
上一篇下一篇

猜你喜欢

热点阅读