Dart:List

List的官方API文档:
https://api.dart.cn/stable/2.13.4/dart-core/List-class.html

List class:可变集合,使用[]初始化。同时文档建议,使用filled方法进行初始化,其中growable参数代表是否可扩展。

基本使用:


dart-增删改查.png

通过设置length可以清空集合:


清空集合.png

其他初始化方式:
List.empty(),默认growable=false,创建一个长度固定的空数组
var list = List.empty();
print(list.length);//0
list.add(0);//报错

List.general,filled的加强版:允许通过一些函数初始化数据元素


general.png

List.from(Iterable elements,{bool growable = true}):
第一个参数是迭代器,通过一个集合到另一个集合

void main() {
  List fruit1 = ["apple","pear","peach", "banana"];
  List fruit2 = List.from(fruit1.where((it) => it.length>4));
  print(fruit1);//[apple, pear, peach, banana]
  print(fruit2);//[apple, peach, banana]
}

List.of(Iterable elements,{bool growable = true}):
与List.from相比,迭代器参数添加了泛型,其他作用几乎完全一致,二者的区别是

List foo = new List.from([1, 2, 3]); // 运行时报错
List bar = new List.of([1, 2, 3]); // 编译报错

推荐使用List.of方式,Drat2更倾向于强类型语言,未来from方式可能会被淘汰。参考 https://stackoverflow.com/questions/50320220/in-dart-whats-the-difference-between-list-from-and-of-and-between-map-from-a

List.unmodifiable(Iterable elements):创建一个无法改变的集合

void main() {
  List fruit1 = ["apple","pear","peach", "banana"];
  List fruit2 = List.unmodifiable(fruit1);
  fruit2.remove("apple");//Uncaught Error: Unsupported operation: remove
}

你可能感兴趣的:(Dart:List)