我搜索了这个,但我找不到答案。
当我们声明这样的变量时执行内存分配:
var x : Int
还是我们还需要初始化它来为这个变量分配内存吗?
答案 0 :(得分:1)
这一切都取决于财产的宣传方式。它还可以依赖于实现或针对其他一些行为进行优化。
The Swift Programming Language (Swift 4) Properties
通常,存储的属性会尽早分配。在使用之前立即或某个时间。访问懒惰属性时会分配它们。永远不会分配计算属性,它们是在访问它们时计算的。
在您的示例中,变量已声明但未初始化或已分配。如果您尝试使用它而不将其设置为值,您将从编译器获得此语句:
变量' x'在初始化之前使用
为它分配一个值后,它将被分配:
var x: Int // declared but not allocated or initialized
x = 10 // allocated and initialized
如果它是struct
的一部分,那么整个结构会立即被分配。 init
方法负责初始化内存。