编辑:正如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的图片可以帮助:
Double[][](count: NumColumns, repeatedValue:Double[](count: NumRows, repeatedValue:Double()));
这行代码创建了一个二维数组,其中包含NumColumns列和NumRows行,并将每个元素初始化为0.0。 - Literphor[[Double]](count: NumColumns, repeatedValue:[Double](count: NumRows, repeatedValue:Double()));
。 - Justin D.repeating:
而不是repeatedValue:
,而且repeating:
显然必须放在count:
之前。 - Victor Engel