1. ホーム
  2. dart

[解決済み] dartでenumにメソッドや値を追加する

2022-07-02 06:17:48

質問

javaでenumを定義するとき、以下のようなことができます。これはDartで可能ですか?

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

どのように解決するのですか?

Dart 2.6から、クラス(Enumを含む)に拡張子を定義することができます。

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

もう一つ実例を紹介します(スイッチの代わりに定数マップを使用します)。 https://dartpad.dartlang.org/c4001d907d6a420cafb2bc2c2507f72c