推荐答案
在 Dart 中,可以通过 List.filled 构造函数来创建固定长度的列表。该构造函数接受两个参数:列表的长度和初始值。列表的长度在创建后不可更改。
// www.javascriptcn.com code example
void main() {
// 创建一个长度为5的固定列表,所有元素的初始值为0
List<int> fixedLengthList = List.filled(5, 0);
print(fixedLengthList); // 输出: [0, 0, 0, 0, 0]
// 尝试修改列表长度会抛出异常
// fixedLengthList.add(1); // 这行代码会抛出异常
}本题详细解读
1. List.filled 构造函数
List.filled 是 Dart 中用于创建固定长度列表的构造函数。它接受两个参数:
- length: 列表的长度,必须是一个非负整数。
- fill: 列表中每个元素的初始值。
2. 固定长度列表的特性
- 长度不可变: 一旦创建,列表的长度就不能再改变。尝试使用
add、remove等方法会抛出UnsupportedError异常。 - 元素可修改: 虽然列表的长度是固定的,但列表中的元素是可以修改的。
3. 使用场景
固定长度列表通常用于需要确保列表长度不变的场景,例如在处理固定大小的缓冲区或矩阵时。
4. 示例代码
// www.javascriptcn.com code example
void main() {
// 创建一个长度为3的固定列表,所有元素的初始值为 'empty'
List<String> fixedList = List.filled(3, 'empty');
print(fixedList); // 输出: [empty, empty, empty]
// 修改列表中的元素
fixedList[0] = 'first';
fixedList[1] = 'second';
print(fixedList); // 输出: [first, second, empty]
// 尝试修改列表长度会抛出异常
// fixedList.add('new'); // 这行代码会抛出异常
}5. 注意事项
- 如果尝试修改固定长度列表的长度(例如使用
add或remove方法),Dart 会抛出UnsupportedError异常。 - 固定长度列表的元素类型必须与初始值的类型一致,否则会导致类型错误。