在Dart中提供枚举之前,我编写了一些麻烦且难以维护的代码来模拟枚举,现在想简化它。我需要以字符串形式获取枚举的值,例如可以用Java完成但不能。
例如,在每种情况下,当我想要的是“MONDAY”时,很少的测试代码片段返回“day.MONDAY”
enum day {MONDAY, TUESDAY}
print( 'Today is $day.MONDAY');
print( 'Today is $day.MONDAY.toString()');
我是否正确,只需要解析“MONDAY”字符串即可?
最佳答案
遗憾的是,您正确的是toString方法返回"day.MONDAY"
,而不是更有用的"MONDAY"
。
您可以通过以下方式获取字符串的其余部分:
day theDay = day.MONDAY;
print(theDay.toString().substring(theDay.toString().indexOf('.') + 1));
诚然,这不太方便。如果要迭代所有值,可以使用
day.values
进行操作:for (day theDay in day.values) {
print(theDay);
}
关于enums - Dart如何获取枚举的 “value”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29567236/