[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語言的特性]