当前位置: 首页 > 知识库问答 >
问题:

如何以字符串形式获取枚举的名称

弘兴言
2023-03-14

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

例如,小测试代码片段返回'day。星期一“在每种情况下,我想要的是”星期一”

enum day {MONDAY, TUESDAY}
print( 'Today is $day.MONDAY');
print( 'Today is $day.MONDAY.toString()');

我是否正确,要获得“星期一”,我需要解析字符串?

共有3个答案

柏高洁
2023-03-14
enum Day {
  monday,
  tuesday,
}

您可以在枚举上使用name属性。

String monday = Day.monday.name; // 'monday'

1.直接方式:

var dayInString = describeEnum(Day.monday);
print(dayInString); // prints 'monday'

2.使用扩展:

extension DayEx on Day {
  String get name => describeEnum(this);
}

你可以像这样使用它:

void main() {
  Day monday = Day.monday;
  print(monday.name); // 'monday'
}
贺方伟
2023-03-14

稍短:

String day = theDay.toString().split('.').last;
太叔睿
2023-03-14

Dart 2.7附带了称为扩展方法的新功能。现在,您可以为Enum编写自己的方法,就像这样简单!

enum Day { monday, tuesday }

extension ParseToString on Day {
  String toShortString() {
    return this.toString().split('.').last;
  }
}

main() {
  Day monday = Day.monday;
  print(monday.toShortString()); //prints 'monday'
}
 类似资料:
  • 例如,我如何做类似的事情: 结果示例:

  • 本文向大家介绍如何在Python中以字符串形式获取函数名称?,包括了如何在Python中以字符串形式获取函数名称?的使用技巧和注意事项,需要的朋友参考一下 每个函数都有一个名为__name__的属性。我们可以访问该属性并获取函数的名称。例如: 这将给我们输出:

  • 问题内容: 说我有这个PHP代码: 然后,我需要一个这样的功能: 打印: 任何想法如何实现这一目标?在PHP中甚至有可能吗? 问题答案: 您可以使用get_defined_vars()来查找与您要查找其名称的变量具有相同值的变量的名称。显然,这并不总是可行的,因为不同的变量通常具有相同的值,但这是我想到的唯一方法。 编辑:get_defined_vars()似乎不能正常工作,它返回’var’,因为

  • 问题内容: 我定义了以下枚举 现在的印刷价值是 相反,我想打印枚举的值 要实现此功能可以做些什么? 问题答案: 您正在打印枚举 对象 。如果只想打印该属性,请使用该属性: 请参阅 对枚举成员及其属性 的 编程访问权限 部分 : 如果您有枚举成员并需要其名称或值: 如果只需要提供自定义字符串表示形式,则可以向枚举添加方法: 演示: