一个Symbol对象表示Dart程序中声明的运算符或者标识符。
你也许永远都不需要使用Symbol,但要按照名称引用标识符的API时,Symbol就非常有用了。
因为代码压缩后会改变标识符的名称,但不会改变标识符的符号。
通过字面量Symbol,也就是标识符前面添加一个#号,来获取标识符的Symbol。

  1. // 字面量
  2. var s1 = #a;
  3. print(s1); //Symbol("a")
  4. // 构造函数
  5. var s2 = Symbol('a');
  6. print(s2); //Symbol("a")

枚举 Enum

适合用在常量定义,类型比较很方便。

  1. 1. enum Status { none, running, stopped, paused }
  2. 2. Status.values.forEach((it) => print('$it - index: ${it.index}'));
  3. 3.
  4. 4. Status.none - index: 0
  5. 5. Status.running - index: 1
  6. 6. Status.stopped - index: 2
  7. 7. Status.paused - index: 3