枚举

枚举类型,通常被称作 enumerationsenums(枚举),是用来表示有固定数量的常量值的一种特殊类。

使用枚举

使用 enum 关键词声明一个枚举类型:

enum Color { red, green, blue }

枚举中的每一个值都有一个 index getter,返回枚举声明中基于0的位置索引。比如,第一个值有索引 0,而第二个值有索引 1.

assert(Color.red.index == 0); assert(Color.green.index == 1); assert(Color.blue.index == 2);

要获取枚举中所有值的列表,使用枚举的 values 常量。

List<Color> colors = Color.values; assert(colors[2] == Color.blue);

你可以在 switch 语句 中使用枚举,而且如果你没有处理所有的枚举值,你会得到一个警告:

var aColor = Color.blue; switch (aColor) { case Color.red: print('Red as roses!'); break; case Color.green: print('Green as grass!'); break; default: // 没有这个,你会看到一个警告 print(aColor); // 'Color.blue' }

枚举类型有以下限制:

  • 你不可以继承、混入或实现一个枚举。
  • 你不可以显式实例化一个枚举。

要了解更多内容,请参阅 Dart 语言规范。