[TOC]
枚举类型,通常称为枚举或枚举类型,是一种特殊类型的类,用于表示固定数量的常量值。
## 使用枚举
使用enum关键字声明一个枚举类型:
~~~
enum Color { red, green, blue }
~~~
枚举中的每个值都有一个索引getter,它返回enum声明中值的从0开始的位置。例如,第一个值有索引0,第二个值有索引1。
~~~
assert(Color.red.index == 0);
assert(Color.green.index == 1);
assert(Color.blue.index == 2);
~~~
要获取枚举中所有值的列表,请使用enum的values 常量。
~~~
List<Color> colors = Color.values;
assert(colors[2] == Color.blue);
~~~
您可以在switch语句中使用enum,如果switch的case不处理enum的所有值,将会报一个警告消息:
~~~
var aColor = Color.blue;
switch (aColor) {
case Color.red:
print('Red as roses!');
break;
case Color.green:
print('Green as grass!');
break;
default: // Without this, you see a WARNING.
print(aColor); // 'Color.blue'
}
~~~
枚举类型有以下限制:
* 您不能子类化、混合或实现枚举。
* 不能显式实例化一个枚举
更多信息参见[Dart语言的特性]