在Swift中填充多维数组

ese*_*rdk 4 arrays for-loop ios swift

我是Swift的新手,但是Swift语言出现了问题。

我应该做一个函数,创建一个二维矩阵NxN并找到对角线放置的元素的总和。我在用随机值填充数组时遇到了一些问题。

那是我的代码:

import Foundation
func diagonal (N:Int) {
    var array: [[Int]] = [[0],[0]]
    for row in 0...N {
        for col in 0...N {
            var z = Int(arc4random_uniform(100))
            array[row][col] = z
        }
    }
    println (array)
}    
Run Code Online (Sandbox Code Playgroud)

没用

因此,期待您的帮助。

ABa*_*ith 6

@matt的答案为您当前的代码提供了一些好处,并突出显示了您需要修复的问题。我想提供一个替代的答案来填充二维数组。除了使用零填充数组然后设置每个行/列值之外,还可以使用append添加新值,例如:

func diagonal (N:Int) {
    var array: [[Int]] = []

    for row in 0..<N {
        // Append an empty row.
        array.append([Int]())

        for _ in 0..<N {
            // Populate the row.
            array[row].append(Int(arc4random_uniform(100)))
        }
    }

    println(array)
}
Run Code Online (Sandbox Code Playgroud)

使用它:

diagonal(2)
// [[40, 58], [44, 83]]
Run Code Online (Sandbox Code Playgroud)