原始类型的记忆分配

时间:2017-08-16 12:16:58

标签: swift

我搜索了这个,但我找不到答案。

当我们声明这样的变量时执行内存分配:

var x : Int

还是我们还需要初始化它来为这个变量分配内存吗?

1 个答案:

答案 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方法负责初始化内存。