swift - 计算属性不需要存储分配

标签 swift memory-management allocation computed-properties

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

[问题]:

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

这本书

[问题]:

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

谢谢

最佳答案

计算属性很像不带参数并返回值的函数。在计算属性执行的生命周期内,会在栈上临时分配一些内存,用于存储计算属性的局部变量。

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

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

关于swift - 计算属性不需要存储分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44334646/

相关文章:

swift - 简单 swift 脚本的段错误

ios - Swift Enum design issues : 1. multiple cases having same value, 2.返回自定义枚举值

android - 是否有必要将图像存储在内存中以在android中的 ListView 上显示

linux -/proc/<pid>/status 中的 VmLck(锁定内存)与 VmPin(固定内存)

iOS:工具、分配达到峰值至持平线

ios - 在运行 ios 13 的设备上,如果应用程序崩溃,则无法播放音频文件

ios - JSON AnyObject 到 Bool 的转换总是返回 nil

Oracle 无法启动 - ORA-00845 : MEMORY_TARGET not supported on this system - but memory size seems to be fine

go - 关于堆栈分配,Go 中的 "small"对象是什么?

c++ - 使用自定义分配器修改增长策略