如何解决Dart 如何将枚举的名称作为字符串获取?
可悲的是, toString 方法返回是正确的"day.MONDAY"
,而不是更有用的"MONDAY"
。你可以得到字符串的其余部分:
day theDay = day.MONDAY;
print(theDay.toString().substring(theDay.toString().indexOf('.') + 1));
诚然,几乎不方便。
另一种将枚举名称作为字符串获取的方法是:一种较短但效率较低的方法,因为它也会为字符串的第一部分创建不必要的字符串:
theDay.toString().split('.').last
如果性能无关紧要,那可能就是我要写的,只是为了简洁。
如果要迭代所有值,可以使用day.values
:
for (day theDay in day.values) {
print(theDay);
}
解决方法
在 Dart 中提供枚举之前,我编写了一些繁琐且难以维护的代码来模拟枚举,现在想要简化它。我需要将枚举的名称作为字符串获取,例如可以用 Java
完成但不能。
例如,当我想要的是“MONDAY”时,小测试代码片段在每种情况下都会返回“day.MONDAY”
enum day {MONDAY,TUESDAY}
print( 'Today is $day.MONDAY');
print( 'Today is $day.MONDAY.toString()');
我是否更正了只需要解析字符串的“星期一”?
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。