Dart 扩展枚举

79 阅读1分钟

在Dart中枚举不支持对原始值赋值,对于IOS跟java转过来的人来说太不友好,所以看看这篇文章,通过扩展可以实现,

image.png

enum AntDetectActionTypeEnum {
  START_STABILITY_DETECT, //稳定性检测
  START_CAMERA_DETECT, //摄像头成像检测
  START_GRAVITY_DETECT, //重力传感器检测
  CANCEL_GRAVITY_DETECT, //取消重力传感器检测
}

extension AntDetectActionTypeExtensionEnum on AntDetectActionTypeEnum {
  String get name => describeEnum(this);

  String get getValue {
    switch (this) {
      case AntDetectActionTypeEnum.START_STABILITY_DETECT:
        return "START_STABILITY_DETECT";
      case AntDetectActionTypeEnum.START_CAMERA_DETECT:
        return "START_CAMERA_DETECT";
      case AntDetectActionTypeEnum.START_GRAVITY_DETECT:
        return "START_GRAVITY_DETECT";
      case AntDetectActionTypeEnum.CANCEL_GRAVITY_DETECT:
        return "CANCEL_GRAVITY_DETECT";
    }
  }
}