能否使用Flutter创建布尔类型二维矩阵?
Flutter实现布尔矩阵的具体方案
完全可以实现。你提到的其他语言中boolean[index_row][index_columns] = new boolean[][];这类二维布尔数组的逻辑,在Flutter使用的Dart语言中可以通过嵌套List结构直接实现,没有额外的语法限制。
固定尺寸布尔矩阵实现
这是和你提到的语法匹配度最高的实现方式,适合提前明确矩阵行列数的场景:
- 初始化时通过
List.generate逐行创建,每一行用List.filled填充默认的布尔值(通常为false) - 元素读写的索引逻辑和其他语言完全一致,使用
矩阵变量名[行索引][列索引]即可访问任意位置的元素
// 定义矩阵的总行数、总列数 const int totalRow = 5; const int totalColumn = 6; // 初始化5行6列、所有元素默认值为false的布尔矩阵 List<List<bool>> boolMatrix = List.generate( totalRow, (rowIdx) => List.filled(totalColumn, false), ); // 示例:给第3行(索引2)第4列(索引3)的位置赋值为true boolMatrix[2][3] = true;
动态尺寸布尔矩阵实现
如果不需要提前固定矩阵的行列大小,可以直接创建空的嵌套列表,后续动态添加行、追加元素:
// 初始化空的布尔矩阵 List<List<bool>> dynamicBoolMatrix = []; // 动态新增一行 dynamicBoolMatrix.add([false, false, true]); // 给第一行追加一个布尔元素 dynamicBoolMatrix[0].add(false);
常见注意事项
- 如果需要元素可以存储
null值(三态:null/true/false),只需要将泛型类型改为可空的bool?即可 - 不要使用
const修饰嵌套列表来创建矩阵:被const修饰的列表是不可变的,后续修改元素值会直接抛出运行时异常
内容的提问来源于stack exchange,提问作者Gioele Sandrin
相关产品推荐
相关产品推荐

