Swift 中的多维数组 [英] Multidimensional arrays in Swift

查看:38
本文介绍了Swift 中的多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

正如 Adam Washington 所指出的,从 Beta 6 开始,此代码按原样运行,因此问题不再相关.

As Adam Washington points out, as from Beta 6, this code works as is, so the question is no longer relevant.

我正在尝试创建并遍历二维数组:

I am trying to create and iterate through a two dimensional array:

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])")
    }
}

然而,这是我得到的输出:

However, this is the output I get:

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

看起来好像行中的最后一列覆盖了其他列的值.

It looks as if the last column in the row is overwriting the other column values.

我说错了吗?

也许游乐场的图片会有所帮助:

Perhaps a picture from the Playground would help:

推荐答案

对于未来的读者,这里有一个优雅的解决方案 (5x5):

For future readers, here is an elegant solution(5x5):

var matrix = [[Int]](repeating: [Int](repeating: 0, count: 5), count: 5)

和动态方法:

var matrix = [[Int]]() // creates an empty matrix
var row = [Int]() // fill this row
matrix.append(row) // add this row

这篇关于Swift 中的多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆