我喜欢将枚举索引设置为从1开始(默认为零(。预期
enum UserRoles{
admin = 1,
user,
vendor
}
有类似的东西吗?
有两种方法可以做到这一点:
- 添加一些伪枚举常量:
enum UserRoles {
_,
admin,
user,
vendor
}
print(UserRoles.values.indexOf(UserRoles.admin)); // 1
print(UserRoles.values.indexOf(UserRoles.user)); // 2
print(UserRoles.values.indexOf(UserRoles.vendor)); // 3
Con:某人可以传递_
用户角色,该角色可能无效。
- 创建伪枚举:
class UserRoles {
static UserRoles admin = UserRoles._();
static UserRoles user = UserRoles._();
static UserRoles vendor = UserRoles._();
static List<UserRoles> values = [admin, user, vendor];
UserRoles._();
static int indexOf(UserRoles role) {
return values.indexOf(role) + 1;
}
}
print(UserRoles.indexOf(UserRoles.admin)); // 1
print(UserRoles.indexOf(UserRoles.user)); // 2
print(UserRoles.indexOf(UserRoles.vendor)); // 3