Dart 数据类型 - List

js 中的数组

声明方式

字面量方式

List l1 = []; // 不限定元素类型
List l2 = []; // 限定元素类型必须为 String

构造函数方式

List l1 = List.empty(growable: true); // 不限制长度的空列表
List l2 = List.filled(3, 0); // 声明指定长度的填充列表

扩展操作符

var l1 = [1, 2, 3];
var l2 = [0, ...l1]; // [0, 1, 2, 3]

常用api

https://api.dart.cn/stable/2.19.2/dart-core/List-class.html

.length@return: intList 长度
.reversed@return: Iterable (可迭代对象 List Set…) 如果需要返回 List .reversed.toList()反转 List
.add(value)

@value

@return: void

追加元素
.addAll(Iterable iterable)

@iterable: Iterable

@return: void

追加多个元素
.insert(int index, E element)

@index: int 指定下标

@element: E 要插入的元素

@retutn: void

在指定位置插入
.remove(Object? value)

@value: Object? 要删除的元素

@return: bool

删除元素,只删除第一个
.removeAt(Int index)

@index: int 下标

@return: E 返回删除的值

按下标删除
.clear()@return: void清空 List
.isEmpty@return: bool判断是否为空
.join([String separator = ""])

@separator:String 链接符号

@return: String

拼接为字符串
.forEach(void function(element))

@function

@return: void

遍历
.map(T toElement(E e))@return: Iterable遍历并返回新的可迭代对象
.where(bool test(E element))

@test: function 返回布尔值的函数

@return: Iterable

返回满足条件的数据
.any(bool test(E element))@return: bool只要有一个元素满足条件 返回 true
.every(bool test(E element))@return: bool所有条件都满足才返回 true
.expand(Iterable toElements(E element))

@toElements: function

@return: Iterable

扩展,元素必须都是可迭代对象
.fold(T initialValue, T combine(T previousValue, E element))

@initialValue 初始值

@initialValue 上一次操作的结果,第一次就是初始值

@element 当前元素

折叠,对列表中的每一个元素进行累计操作

还可以使用 for for…in 遍历