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

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

问题描述

在Java中,当您定义枚举时,您可以执行以下操作。

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);
}


推荐答案

从Dart 2.6开始,您可以

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');
  }
}

示例:

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

这里还有一个实时示例(使用常量映射而不是开关):
>://dartpad.dartlang.org/c4001d907d6a420cafb2bc2c2507f72c

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

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

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