【问题标题】:How to make nested lists work properly in dart?如何使嵌套列表在飞镖中正常工作?
【发布时间】: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&lt;int&gt;.of(row))。)

标签: list flutter dart


【解决方案1】:

正如@shubham 的回答所说,你应该在 for 循环中创建 List,因为你引用的是同一个对象,所以当你在 for 末尾清除时,也会清除里面的所有对象

【讨论】:

    【解决方案2】:

    这应该对你有帮助。

    void main() {
      List<List<int>> rows = List();
    
      for (int i = 0; i < 5; i++) {
        List<int> row = List();
        row.add(i + 1);
        row.add(i + 2);
        row.add(i + 3);
        rows.add(row);
      }
      print(rows); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 1970-01-01
      • 2021-09-06
      • 2019-07-09
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多