计算属性不能存储值,但保存值,保持什么以及如何保持?

时间:2016-05-28 14:52:21

标签: swift properties

来自" Swift Apprentice第二版第225页":

  

属性(已计算)保持您可以获取和设置的值。方法执行工作

引用来自" Swift官方文档":

  

除了存储的属性,类,结构和枚举还可以定义计算属性,实际上存储

一个人说"存储",另一个说" hold"。我对计算属性有点困惑,计算出的属性究竟没有存储值是什么意思?这是否意味着系统不会分配任何内存空间来保存值,只会保留它。但是,持有意味着什么?你无法抓住某些东西,你可能需要一个盒子来装东西,不是吗?

1 个答案:

答案 0 :(得分:1)

文档中的简单示例

struct Cuboid {
    var width = 0.0, height = 0.0, depth = 0.0
    var volume: Double {
        return width * height * depth
    }
}

volume永远不会存储在内存中。每当调用getter时,乘法的结果就像在本地范围内的数学运算一样动态返回。

官方Apple文档根本不使用术语hold