Dart在线运行

版本:
运行结果
教程手册
代码仓库
极速运行
终端运行
图形+终端

                        
显示目录

Set



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为你提供的Dart在线运行、在线编译工具
        JSRUN提供的Dart 在线运行,Dart 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。