【发布时间】:2020-05-20 19:05:05
【问题描述】:
我正在尝试创建嵌套列表,但得到的输出不是我所期望的。
void main() {
List<int> row = List();
List<List<int>> rows = List();
for(int i=0;i<5;i++)
{
row.add(i+1);
row.add(i+2);
row.add(i+3);
rows.add(row);
row.clear();
}
print(rows);
}
我得到的输出:
[[], [], [], [], []]
我期待的输出:
[[1,2,3],[2,3,4],[3,4,5],[4,5,6],[5,6,7]]
我应该进行哪些更改才能正确运行此代码?
【问题讨论】:
-
在每次迭代中,添加对同一
List实例 (row) 的引用。由于您最终清除了该实例,因此您最终会得到一个空Lists 的List。您想改为添加单独的List实例(例如rows.add([...row])或rows.add(List<int>.of(row))。)