初始化Dart中的列表列表

时间:2017-04-14 14:21:17

标签: for-loop dart closures

我在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));
    }
}

我似乎找不到用正确的rowcol值初始化每个单元格的方法:我尝试了两个嵌套的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初始化嵌套列表的惯用方法是什么?

1 个答案:

答案 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)));
    }
}

另见Dart: List of Lists