为什么当我创建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
工作示例
var arr : [Int] = [] //Allocating memory?
for i in 1...10 {
arr += [i]
}
arr
答案 0 :(得分:7)
只是说var arr
没有初始化你的数组。初始值应该是一个空数组吗?它应该具有给定值的N
个副本吗?如果声明它包含类型A
对象,则应使用A
的子类型进行初始化。
所以你提供一个初始值;最简单的是[]
- 一个空数组。