Dart 2.17 之前,枚举只能定义常量成员,不能有方法、getter、构造函数等。

enum ColorType {
  red,
  green,
  blue
}

从 Dart 2.17 开始,枚举可以像类一样拥有字段、方法、getter、setter、构造函数等成员。

enum ColorType {
  red,
  green,
  blue;

  // 分号后可以定义 getter、方法等
  bool get isPrimary => this == ColorType.red || this == ColorType.blue;
}

用法:

void main() {
  var color = ColorType.red;
  print(color.isPrimary); // 输出 true
}

qngyun1029
980 声望15 粉丝