我在Dart中有一个网格实现如下:
class Cell {
int row;
int col;
Cell(this.row, this.col);
}
class Grid {
List<List<Cell>> rows = new List(GRID_SIZE);
Grid() {
rows.fillRange(0, rows.length, new List(GRID_SIZE));
}
}
我似乎找不到用正确的row
和col
值初始化每个单元格的方法:我尝试了两个嵌套的for循环,就像这样
for(int i = 0; i < GRID_SIZE; i++) {
for(int j = 0; j < GRID_SIZE; j++) {
rows[i][j] = new Cell(i, j);
}
}
但是由于Dart的关闭错误保护描述为here,我的网格最终会填充GRID_SIZE - 1
成员中row
的单元格。
那么,Dart初始化嵌套列表的惯用方法是什么?
答案 0 :(得分:4)
我想这就是你想要的:
class Grid {
List<List<Cell>> rows; // = new List(GRID_SIZE);
Grid() {
rows = new List.generate(GRID_SIZE, (i) =>
new List.generate(GRID_SIZE, (j) => new Cell(i, j)));
}
}