Dart2.17でenumが超絶便利になった

ここがすごいぞDart2.17

  • 定数コンストラクタを使える
  • 型と名称が持てるようになったため視認性が高い
  • メソッドが持てる
  • その他クラスのように色々拡張できる

サンプル

enum Animal {
  dog(value: '犬'),
  cat(value: '猫'),
  ;

  const Animal({required this.value});
  final String value;

  getEmoji(Animal animal) {
    switch (animal) {
      case Animal.dog:
        return '🐶';
      case Animal.cat:
        return '😺';
    }
  }
}