arrays - Swift 中的多维数组

标签 arrays swift

编辑:正如 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 的图片会有所帮助:

Captured from 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/

相关文章:

ios - Swift 从 CLLocation 获取 CLPlacemark

c - 在C中,如何存储长字符串(例如密码)

c - 将定义的元素分配给二维数组 C

java - 专门从一系列类(class)写入 csv 文件

javascript - 过滤数组以对多个值使用react

swift - 试图让我的重启按钮保持空闲 2 - 3 秒

c - 将 char 数组类型转换为 char **

ios - 在 Swift 中附加到字典数组

swift - CAShapeLayer 绕中心旋转

uitableview - 未调用 swift uitableview didSelectRowAtIndexPath