Dart如何获取字符串形式的枚举名称 [英] Dart How to get the name of an enum as a String

查看:0
本文介绍了Dart如何获取字符串形式的枚举名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在DART中提供枚举之前,我编写了一些繁琐且难以维护的代码来模拟枚举,现在我想简化它。我需要获取字符串形式的枚举名称,例如可以使用Java,但不能。

例如,在每种情况下,当我想要的是‘星期一;

时,很少的测试代码片段返回’day.MONDAY‘。
enum day {MONDAY, TUESDAY}
print( 'Today is $day.MONDAY');
print( 'Today is $day.MONDAY.toString()');

我是否正确地认为,为了仅获得‘星期一’,我将需要分析该字符串?

推荐答案

不幸的是,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如何获取字符串形式的枚举名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆