Dart2.17でアップデートされたEnumについて

2.17以前のEnum

enum Fruit {
  apple,
  orange,
  grape,
}

このようにメンバーを定義するだけで、Javaのように中に定数を入れるようにするためにはExtensionを定義してあげないといけませんでした

extension FruitExt on Fruit {
  String get name {
    switch (this) {
      case Fruit.apple:
        return 'りんご';
      case Fruit.orange:
        return 'みかん';
      case Fruit.grape:
        return 'ぶどう';
    }
  }
}

2.17以降のEnum

enum Fruit {
  apple('りんご'),
  orange('みかん'),
  grape('ぶどう');

  const Fruit(this.name);
  final String name;
}

以上のようにすっきりと書くことができJavaとほぼ同じようになり、独自コンストラクタを定義できるようになりました。

注意

pubspec.yaml にあるsdkの下限を2.17以上にしないとエラーになってしまいます

最後に

エキサイトではフロントエンジニア、バックエンドエンジニア、アプリエンジニアを随時募集しております。長期インターンも歓迎していますので、興味があれば連絡いただければと思います。今回の記事を読んで少しでも興味が湧きましたら是非応募お願い致します!!

就業型インターンの募集情報です! www.wantedly.com

募集職種一覧はこちらになります!カジュアル面談からでも構いません。 www.wantedly.com