我喜欢将枚举索引从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