JSRUN 用代码说话

Set 是无序不重复的集合,不能通过索引去获取值 ,Dart 为 Set 提供了 Set 字面量和 Set 类型。

提示 Dart 的核心部分虽然一直是Set 类型 ,但 Dart2.2中才引入 Set 字面量 。

接下来是通过字面量创建 Set 的一个简单示例:

var halogens = {'fluorine', 'chlorine', 'bromine', 'iodine', 'astatine'};

Note: Dart 推断 halogens 类型为 set(String) 。假如为它添加一个 错误类型的值,那么分析器或执行时会抛出错误。更多内容,可以参考 类型推断。

要创建一个空集,使用前面带有类型参数的 {} ,或者将 {} 赋值给 Set 类型的变量:

var names = <String>{};
// Set<String> names = {}; // 这样也是可以的。
// var names = {}; // 这样会创建一个 Map ,而不是 Set 。

Set 字面量语法与 Map 字面量语法很相似。 因为Map 字面量语法是先有的 ,所以 {} 默认是 Map 类型。 如果 {} 上忘记注释类型或赋值到一个未声明类型的变量上, 那么 Dart 就会创建一个类型为 Map(dynamic, dynamic) 的对象。

已有的 Set 添加元素可用 add() 或 addAll() :


var elements = <String>{};
elements.add('fluorine');
elements.addAll(halogens);

获取 Set 中元素的个数用 .length :

var elements = <String>{};
elements.add('fluorine');
elements.addAll(halogens);
assert(elements.length == 5);

添加 const 在 Set 字面量前创建一个编译时 Set 常量:

final constantSet = const {
  'fluorine',
  'chlorine',
  'bromine',
  'iodine',
  'astatine',
};
// constantSet.add('helium'); // Uncommenting this causes an error.
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟