使用r41815,Dart获得了本机枚举支持,请参见http://dartbug.com/21416,可以像
enum Status {
none,
running,
stopped,
paused
}
void main() {
print(Status.values);
Status.values.forEach((v) => print('value: $v, index: ${v.index}'));
print('running: ${Status.running}, ${Status.running.index}');
print('running index: ${Status.values[1]}');
}
[Status.None,Status.Running,Status.stop,Status.Pased]
值:Status.None,索引:0
值:Status.running,索引:1
值:Status.stop,索引:2
值:Status.Pased,索引:3
正在运行:Status.running,%1
运行索引:Status.running
一个限制是不可能为枚举项设置自定义值,它们会自动编号.
有关更多详细信息,请参阅本草稿中的第https://www.dartlang.org/docs/spec/EnumsTC52draft.pdf页