[英]How to assign value to dart enum like in c++
I'm trying to adapt a c++ to dart, and I ran into this situation with enum, assigning default values I think.我正在尝试将 c++ 改编为 dart,我遇到了这种情况,枚举分配了我认为的默认值。 follow the code
遵循代码
enum skills_t : uint8_t {
SKILL_FIST = 0,
SKILL_CLUB = 1,
SKILL_SWORD = 2,
SKILL_AXE = 3,
SKILL_DISTANCE = 4,
SKILL_SHIELD = 5,
SKILL_FISHING = 6,
SKILL_CRITICAL_HIT_CHANCE = 7,
SKILL_CRITICAL_HIT_DAMAGE = 8,
SKILL_LIFE_LEECH_CHANCE = 9,
SKILL_LIFE_LEECH_AMOUNT = 10,
SKILL_MANA_LEECH_CHANCE = 11,
SKILL_MANA_LEECH_AMOUNT = 12,
SKILL_MAGLEVEL = 13,
SKILL_LEVEL = 14,
SKILL_FIRST = SKILL_FIST,
SKILL_LAST = SKILL_MANA_LEECH_AMOUNT
};
}
uint32_t skillBase[SKILL_LAST + 1] = {50, 50, 50, 50, 30, 100, 20};
Is it possible to adapt this code to dart/flutter?是否可以使此代码适应飞镖/扑动? I would like to replicate the same operation in dart, it seems that he assigned these values to each enum in a range
我想在 dart 中复制相同的操作,似乎他将这些值分配给一个范围内的每个枚举
Yes, it is possible to adapt this code to Dart/Flutter.是的,可以将此代码改编为Dart/Flutter。
In Dart, you can use the enum keyword to define an enumeration.在Dart中,可以使用enum关键字来定义一个枚举。 The syntax is similar to C++, but there is no need to specify a type like uint8_t.
语法类似于C++,但不需要像uint8_t 那样指定类型。
Regarding the default values, you can initialize the enum members with a value like in C++.关于默认值,您可以使用 C++ 中的值初始化枚举成员。
Here is an example of how the C++ code could be adapted to Dart:以下是 C++ 代码如何适应Dart 的示例:
enum Skills {
FIST,
CLUB,
SWORD,
AXE,
DISTANCE,
SHIELD,
FISHING,
CRITICAL_HIT_CHANCE,
CRITICAL_HIT_DAMAGE,
LIFE_LEECH_CHANCE,
LIFE_LEECH_AMOUNT,
MANA_LEECH_CHANCE,
MANA_LEECH_AMOUNT,
MAGLEVEL,
LEVEL,
FIRST = FIST,
LAST = MANA_LEECH_AMOUNT,
}
final List<int> skillBase = [
50, 50, 50, 50, 30, 100, 20
];
You can also use a Map to assign the default values to each enum member.您还可以使用 Map 将默认值分配给每个枚举成员。
enum Skills {
FIST,
CLUB,
SWORD,
AXE,
DISTANCE,
SHIELD,
FISHING,
CRITICAL_HIT_CHANCE,
CRITICAL_HIT_DAMAGE,
LIFE_LEECH_CHANCE,
LIFE_LEECH_AMOUNT,
MANA_LEECH_CHANCE,
MANA_LEECH_AMOUNT,
MAGLEVEL,
LEVEL,
FIRST = FIST,
LAST = MANA_LEECH_AMOUNT,
}
final Map<Skills, int> skillBase = {
Skills.FIST: 50,
Skills.CLUB: 50,
Skills.SWORD: 50,
Skills.AXE: 50,
Skills.DISTANCE: 30,
Skills.SHIELD: 100,
Skills.FISHING: 20,
// Add the rest of the skills
};
Both the above examples will work fine in dart/flutter.以上两个例子在 dart/flutter 中都可以正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.