在Dart中提供枚举之前,我编写了一些繁琐且难以维护的代码来模拟枚举,现在我想简化它。我需要以字符串形式获取枚举的名称,例如可以用Java完成,但不能。
例如,小测试代码片段返回'day。星期一“在每种情况下,我想要的是”星期一”
enum day {MONDAY, TUESDAY}
print( 'Today is $day.MONDAY');
print( 'Today is $day.MONDAY.toString()');
我是否正确,要获得“星期一”,我需要解析字符串?
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'
}
稍短:
String day = theDay.toString().split('.').last;
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’,因为