在 Dart 中,数组通过 List 对象表示,常称为 List。创建 List 字面量时,使用逗号分隔表达式或值并以方括号包裹。List 的索引从0开始,第一个元素的索引为0,最后一个元素的索引为 list.length - 1。通过 list.length 可以获取 List 的长度,list[index] 可以获取指定索引的元素。在 List 字面量前添加 const 关键字,可以创建一个编译时常量。Dart 在2.3版本引入了扩展操作符(...)和空感知扩展操作符(...?),简化了将多个元素插入集合的方法。例如,将一个 List 的所有元素插入到另一个 List 中,可以使用扩展操作符(...)。如果右侧可能为 null,则使用 null-aware 扩展操作符(...?)避免异常。Dart 中的集合支持条件判断(if)和循环(for),在构建集合时可以使用这些操作。Set 是一组无序的特定元素集合。使用 Set 字面量创建,或在 {} 前加上类型参数创建一个空 Set。使用 add() 或 addAll() 方法向 Set 添加项目。Set 的长度通过 .length 获取。在 Set 前添加 const 可以创建一个编译时常量。从2.3版本开始,Set 支持使用扩展操作符和集合的 if 和 for 操作。Map 是关联键和值的对象,键唯一,值可重复。Map 以字面量或 Map 类型提供。创建 Map 的字面量例子如下。使用 Map 构造器同样可以创建 Map。向 Map 添加键值对类似 JavaScript 的操作,通过键获取值也类似。如果键不存在,则返回 null。使用 .length 获取 Map 中的键值对数量。在 Map 前添加 const 可创建一个编译时常量,Map 同样支持扩展操作符和集合操作。在 Dart 中,runes 公开字符串的 Unicode 码位,可通过 characters 包访问或操作用户感知的字符。表示 Unicode 字符常用 \uXXXX,对于四位数或大于四位数的 16 进制数字,使用大括号。characters getter 返回一系列 grapheme clusters 的字符串。Symbol 表示声明的操作符或标识符,用于通过名称引用标识符的 API,即便代码压缩后名称改变,Symbol 保持不变。获取 Symbol 可以在标识符前添加 # 前缀。Symbol 字面量为编译时常量。