【发布时间】:2021-06-01 12:44:01
【问题描述】:
我喜欢设置枚举索引从 1 开始(因为它默认为零)。 预计
enum UserRoles{
admin = 1,
user,
vendor
}
有没有类似的?
【问题讨论】:
我喜欢设置枚举索引从 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
缺点:有人可以传递_ 用户角色,这可能是无效的。
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
【讨论】: