用于创建二维数组的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);
}
为我创建一个空数组。但我确信这不是正确的解决方案,只是一种胶带式解决方法。
答案 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)))
但我更喜欢单独的可读性陈述。