如何在Swift 2中初始化二维数组?

时间:2015-09-23 09:30:59

标签: arrays swift2

用于创建二维数组的Java代码是否有一行等效:

cells = new Cell[width][height];
Swift 2.0 中的

在Stack Overflow中查看各种解决方案我最终得到了一个多线怪物:

self.cells = [[Cell]]()
for (var col=0; col<height; col++){
    var newColumn = Array<Cell>.init(count: width, repeatedValue: Cell(x: 0,y: 0))
    self.cells.append(newColumn);
}

为我创建一个空数组。但我确信这不是正确的解决方案,只是一种胶带式解决方法。

1 个答案:

答案 0 :(得分:3)

无需使用循环:

let inner = Array<Cell>(count: width, repeatedValue: Cell(x: 0,y: 0))
let cells = Array<[Cell]>(count: height, repeatedValue: inner)

当然可能是一个单行程:

let cells = Array<[Cell]>(count: height, repeatedValue: Array<Cell>(count: width, repeatedValue: Cell(x: 0,y: 0)))

但我更喜欢单独的可读性陈述。