将方法或值添加到 dart 中的枚举 [英] Add methods or values to enum in dart
本文介绍了将方法或值添加到 dart 中的枚举的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在 Java 中,当您定义枚举时,您可以执行类似于以下操作的操作.这在 Dart 中可行吗?
枚举等等{一(1),二(2);最终数值;等等(这个.价值);}
解决方案
从 Dart 2.6 开始,您可以定义类的扩展(包括枚举).
enum Cat {黑色的,白色的}扩展 CatExtension 在 Cat {字符串获取名称{切换(这个){案例 Cat.black:返回黑猫先生";案例 Cat.white:return 'Ms White Cat';默认:返回空;}}空谈(){打印('喵');}}
示例:
Cat cat = Cat.black;String catName = cat.name;猫谈话();
这里还有一个活生生的例子(使用常量映射而不是开关):https://dartpad.dartlang.org/c4001d907d6a420cafb2bc2c2507f>7p2
In java when you are defining an enum you can do something similar to the following. Is this possible in Dart?
enum blah {
one(1), two(2);
final num value;
blah(this.value);
}
解决方案
Starting with Dart 2.6 you can define extensions on classes (Enums included).
enum Cat {
black,
white
}
extension CatExtension on Cat {
String get name {
switch (this) {
case Cat.black:
return 'Mr Black Cat';
case Cat.white:
return 'Ms White Cat';
default:
return null;
}
}
void talk() {
print('meow');
}
}
Example:
Cat cat = Cat.black;
String catName = cat.name;
cat.talk();
Here's one more live example (uses a constant map instead of a switch): https://dartpad.dartlang.org/c4001d907d6a420cafb2bc2c2507f72c
这篇关于将方法或值添加到 dart 中的枚举的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文