【问题标题】:Creating 2D array in Dart where only row length is defined在 Dart 中创建仅定义行长的二维数组
【发布时间】:2026-01-31 23:50:01
【问题描述】:

我想在 Dart/Flutter 中实现以下代码(Java)。 你能告诉我如何实现这一点吗?

这里行 = 8,列 = 未定义。

int[][] myArray = new int[8][];

【问题讨论】:

    标签: flutter dart dart-null-safety


    【解决方案1】:

    Dart 以 List 对象的形式表示数组。列表只是一组有序的对象。 ... List 中的每个元素都由一个称为索引的唯一编号标识。

    为了得到你想要的,你可以使用双 List.generate,即:

    const cols = 31;
    const rows = 12;
    final array = List.generate(rows,
       (i) => List.generate(cols + 1, (j) => i + j * cols + 1, 
    growable: false),growable: false);
    
    array.forEach((row) {
    print(row);
    });
    // [1, 32, 63, ...
    // [2, 33, 64, ...
    // [3, 34, 65, ...
    // ...
    

    还有List.filled,你可以在创建时用一些初始值填充数组。下面用 0 初始化二维数组。

    final array = List.generate(rows + 1, (i) => List.filled(cols + 1,  0,growable: false), growable: false);
    

    【讨论】: