将方法或值添加到 dart 中的枚举 [英] Add methods or values to enum in dart

查看:50
本文介绍了将方法或值添加到 dart 中的枚举的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 Java 中,当您定义枚举时,您可以执行类似于以下操作的操作.这在 Dart 中可行吗?

枚举等等{一(1),二(2);最终数值;等等(这个.价值);}

解决方案

从 Dart 2.6 开始,您可以定义类的扩展(包括枚举).

enum Cat {黑色的,白色的}扩展 CatExtension 在 Cat {字符串获取名称{切换(这个){案例 Cat.black:返回黑猫先生";案例 Cat.white:return 'Ms White Cat';默认:返回空;}}空谈(){打印('喵');}}

示例:

Cat cat = Cat.black;String catName = cat.name;猫谈话();

这里还有一个活生生的例子(使用常量映射而不是开关):https://dartpad.dartlang.org/c4001d907d6a420cafb2bc2c2507f>7p2

In java when you are defining an enum you can do something similar to the following. Is this possible in Dart?

enum blah {
  one(1), two(2);
  final num value;
  blah(this.value);
}

解决方案

Starting with Dart 2.6 you can define extensions on classes (Enums included).

enum Cat {
  black,
  white
}

extension CatExtension on Cat {

  String get name {
    switch (this) {
      case Cat.black:
        return 'Mr Black Cat';
      case Cat.white:
        return 'Ms White Cat';
      default:
        return null;
    }
  }

  void talk() {
    print('meow');
  }
}

Example:

Cat cat = Cat.black;
String catName = cat.name;
cat.talk();

Here's one more live example (uses a constant map instead of a switch): https://dartpad.dartlang.org/c4001d907d6a420cafb2bc2c2507f72c

这篇关于将方法或值添加到 dart 中的枚举的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆