List的官方API文档:
https://api.dart.cn/stable/2.13.4/dart-core/List-class.html
List<E> class
:可变集合,使用[]初始化。同时文档建议,使用filled方法进行初始化,其中growable参数代表是否可扩展。
基本使用:
dart-增删改查.png
通过设置length可以清空集合:
清空集合.png
其他初始化方式:
List.empty(),默认growable=false,创建一个长度固定的空数组
var list = List.empty();
print(list.length);//0
list.add(0);//报错
List<E>.general,filled的加强版:允许通过一些函数初始化数据元素
general.png
List<E>.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<E>.of(Iterable<E> elements,{bool growable = true}):
与List<E>.from相比,迭代器参数添加了泛型,其他作用几乎完全一致,二者的区别是
List<String> foo = new List.from(<int>[1, 2, 3]); // 运行时报错
List<String> bar = new List.of(<int>[1, 2, 3]); // 编译报错
推荐使用List<E>.of方式,Drat2更倾向于强类型语言,未来from方式可能会被淘汰。参考 https://stackoverflow.com/questions/50320220/in-dart-whats-the-difference-between-list-from-and-of-and-between-map-from-a
List<E>.unmodifiable(Iterable elements):创建一个无法改变的集合
void main() {
List fruit1 = ["apple","pear","peach", "banana"];
List fruit2 = List.unmodifiable(fruit1);
fruit2.remove("apple");//Uncaught Error: Unsupported operation: remove
}
网友评论