在Swift中,您可以轻松地将原始值赋给枚举,例如:
enum Game: Int {
case lol = 1
case dnf = 2
case dota = 3
}
但是,在Dart中不能将原始值赋给枚举:
enum Game {
lol = 1,
dnf = 2,
dota = 3,
}
它显示了错误,您只能使用最简单的枚举:
enum Game {
lol,
dnf,
dota,
}
这真让我失望。
有没有办法像Swift那样给Dart的枚举赋值?
4条答案
按热度按时间bpsygsoo1#
Dart 2.17
支持增强枚举像这样使用它:
iqjalb3h2#
Dart中有一个即将推出的特性,称为增强的枚举,它允许枚举声明具有类中已知的许多特性。
该特性尚未发布(请注意,有几个功能尚未工作),但是可以通过传递
--enable-experiment=enhanced-enums
,使用该工具的适当的新版本来执行该特性的实验。结果是
Game
类型的枚举值将有一个getterintValue
返回问题中提到的int
值,因此print(myGame.intValue)
将打印1、2或3。q5lcpyga3#
例如,可以使用枚举扩展名
在你的例子中,你会返回一个int和一个int值。枚举也有一个int值,默认情况下,它们各自的索引。你可以调用Game.lol.index,它会返回0。
ca1c2owp4#
要获取int值,只需向enumGame函数传递一个枚举。