编辑:正如 Adam Washington 指出的那样,从 Beta 6 开始,此代码按原样运行,因此该问题不再相关。
我正在尝试创建和遍历二维数组:
var array = Array(count:NumColumns, repeatedValue:Array(count:NumRows, repeatedValue:Double()))
array[0][0] = 1
array[1][0] = 2
array[2][0] = 3
array[0][1] = 4
array[1][1] = 5
array[2][1] = 6
array[0][2] = 7
array[1][2] = 8
array[2][2] = 9
for column in 0...2 {
for row in 0...2 {
println("column: \(column) row: \(row) value:\(array[column][row])")
}
}
但是,这是我得到的输出:
column: 0 row: 0 value:3.0
column: 0 row: 1 value:6.0
column: 0 row: 2 value:9.0
column: 1 row: 0 value:3.0
column: 1 row: 1 value:6.0
column: 1 row: 2 value:9.0
column: 2 row: 0 value:3.0
column: 2 row: 1 value:6.0
column: 2 row: 2 value:9.0
看起来行中的最后一列正在覆盖其他列的值。
我声明错了吗?
编辑:也许来自 Playground 的图片会有所帮助:
最佳答案
如其他答案所述,您正在向每一列添加相同的行数组。要创建多维数组,您必须使用循环
var NumColumns = 27
var NumRows = 52
var array = Array<Array<Double>>()
for column in 0..NumColumns {
array.append(Array(count:NumRows, repeatedValue:Double()))
}
关于arrays - Swift 中的多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24051490/