简介
Dart的枚举比Swift的要差一点,不过比OC的要好用一点。
一般枚举除了一个int值用于和后端接口沟通之外,常常还需要一个String类型的label用来显示。把这两个结合在一起,复用程度较高
例子
比如最经典的性别,可以设计如下枚举类型
/// 性别, 0-男 1-女
enum GenderType {
man(value: 0, label:"男"),
woman(value: 1,label:"女");
const GenderType({required this.value, required this.label});
final int value;
final String label;
static GenderType parse(int? value) {
/// 解析从后台传来的值
if (value == 1) {
return GenderType.woman;
}
return GenderType.man;
}
}
使用的例子
- 从后端返回的value创建枚举对象
GenderType gender = GenderType.parse(value);
- 使用,value用于给后端,label用来显示
actions: [
AlertDialogAction<int>(
label: GenderType.man.label, key: GenderType.man.value),
AlertDialogAction<int>(
label: GenderType.woman.label, key: GenderType.woman.value),
],