Computed 属性 不需要存储分配

Computed property does not require storage allocation

一个基本问题,甚至可能很愚蠢,但对我来说很重要。我不知道答案,感谢您的宝贵时间。

[问题]:

在Swift中,计算属性没有任何存储分配,所以它不是真正的变量这句话在本书第二章197页可以找到iOS学徒(第5版)

[问题]:

计算属性没有任何存储分配?我不明白这一点。内存中必须有某个地方来存放数据以进行计算,否则,这怎么可能?或者,它意味着只计算被调用的值,并在它交给调用者之后 remove/destroy 数据,我在这个概念的方向上是正确的吗?

谢谢

计算属性很像函数,它们不带参数,return 有一个值。在计算 属性 的执行生命周期中,一些内存将临时分配在堆栈上,以存储计算 属性.

的局部变量

除此之外,计算出的指令 属性 必须存储在编译程序的某处。幸运的是,您只需要一份定义副本,它可以用于所有实例。

重要的一点是不需要每个实例的内存。

从本质上讲,这意味着您每次使用它时都会计算结果,而不是引用存储任何先前计算结果的地址。所以每次使用它都会占用内存(计算完成后会释放内存),但是没有留出一个内存位置来保存供以后参考的值(正常 variables/objects 确实有)。