Dart 枚举转换问题

dart里面的枚举不能赋值.

开发中经常会用到枚举.
经常会有值转枚举, 枚举转值的操作. 但是Dart不支持枚举设值.

如果有这样一个枚举

Enum {
  One,
  Two,
}

Enum.One 的值为 one , Enum.Two 的值为 two

一般怎么把 枚举对应的值 ,转场枚举? 比如 one转成Enum.One?
目前是在定枚举的时候还会定一个值转枚举的方法, 感觉不是很优雅, 也很麻烦.

Dart 2.7 加了个Extension, 可以比较好的解决枚举转值, 但是值转成枚举还是得自己写个Map去转. 而且感觉用Extension封装性也不太好.

请问有其他好点的办法吗?

阅读 10.3k
1 个回答
新手上路,请多包涵
///枚举类型转string
String enumToString(o) => o.toString().split('.').last;

///string转枚举类型
T enumFromString<T>(Iterable<T> values, String value) {
  return values.firstWhere((type) => type.toString().split('.').last == value,
      orElse: () => null);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏