如何在引用数组之前初始化数组Swift

jea*_*_re 3 arrays swift

为什么当我创建arr时,一个数组然后尝试使用for-in循环用整数填充它,当我不初始化它时给我一个错误.我可以告诉它,当我写"var arr"时它被初始化了,但显然不是这样,如果不初始化它,写var var实际上是做什么的.

错误示例

var arr : [Int] //Error Message: Variable 'arr' passed by reference before being initialized
for i in 1...10 {
    arr += [i]
}
arr //Error Message: Variable 'arr' used before being initialized
Run Code Online (Sandbox Code Playgroud)

工作实例

var arr : [Int] = [] //Allocating memory?
for i in 1...10 {
    arr += [i]
}
arr
Run Code Online (Sandbox Code Playgroud)

GoZ*_*ner 7

只是说var arr没有初始化你的数组.初始值应该是一个空数组吗?它应该有N给定值的副本吗?如果它被声明为持有类型A对象,它应该用子类型初始化A.

所以你提供一个初始值; 最简单的是[]- 一个空数组.

  • 所有变量都需要初始化,作为其声明的一部分或在类的`init()`方法中.编译器强制执行此操作,因此它比"不良实践"更糟糕,这是非法的Swift. (2认同)