如何在dart中设置枚举索引起始值



我喜欢将枚举索引设置为从1开始(默认为零(。预期

enum UserRoles{
admin = 1,
user,
vendor
}

有类似的东西吗?

有两种方法可以做到这一点:

  1. 添加一些伪枚举常量:
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:某人可以传递_用户角色,该角色可能无效。

  1. 创建伪枚举:
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

最新更新