Dart| Flutter:创建不可更改的列表的多种方法及示例

480 阅读1分钟

本教程展示了创建一个不可变的列表的多种方法。

列表是dart中的一个可变列表,允许添加、删除和更新操作。

不可变的列表不允许添加或更新操作,只允许读操作。 由于读操作,不可变的列表与List相比性能最好。

有时,我们希望返回API或方法只返回不可变的List。

例如,普通列表允许添加、更新和删除操作,如下所示。

void main() {
  var list = [8, 6, 3];
  print(list); //[8, 6, 3];

  list.add(2);
  print(list); //[8, 6, 3, 2]

  list.remove(6);
  print(list); //[8, 3, 2]
}

我们有多种方法可以创建一个不可变的列表。

Dart或Flutter 创建一个不可变的列表

  • 使用List.unmodifiable方法

List.unmodifiable() 方法接受列表参数并返回不可变的列表。

下面是一个例子

void main() {
  var list = [8, 6, 3];
  print(list); //[8, 6, 3];
  var unmodifiable = List<int>.unmodifiable(list);
  print(unmodifiable); //[8, 6, 3, 2]
}

假设,如果你试图从不可修改的列表中添加或删除一个元素,它会抛出一个错误Uncaught Error: Unsupported operation: remove

下面的代码抛出了一个错误

void main() {
  var list = [8, 6, 3];
  print(list); //[8, 6, 3];

  var unmodifiable = List<int>.unmodifiable(list);
  unmodifiable.add(5); // error
  unmodifiable.remove(6); // error
}
  • 在变量声明中不断使用。

另一种方法是用final或const来声明一个列表。

不使用var关键字,而使用 const or final来创建一个列表并在同一行中赋值。

你可以声明编译时的常量变量

同样地,你可以使用

  const list = const [8, 6, 3];

这里是一个不可变的列表的例子。

void main() {
  const list = [8, 6, 3];
  print(list); //[8, 6, 3];
  list.add(5); // error
  list.remove(6); // error
}

总结

通过实例学习了在dart或flutter中创建不可变或不可修改的列表的多种方法。