知识卡片
存储属性与计算属性的区别
内容
存储属性是真正占用内存空间的一份数据,赋值就是把值写进这块空间;计算属性本身不存储 任何数据,只是一层通过 get/set 包装的接口,每次访问都会实时执行一段计算逻辑,通常是 基于其他存储属性推导出来的派生值(如根据半径实时算出的圆周长)。只有 get 没有 set 的 计算属性是只读的,外界无法反向赋值。发散:这条界线的价值在于避免”数据冗余导致不一致”—— 如果周长也做成存储属性,半径变了就必须记得手动同步周长,而计算属性从设计上直接排除了 这类同步遗漏的可能,因为它压根不存那个值,每次都是现算的。
参考来源
《Swift 4从零到精通iOS开发》第8章《属性与方法》