【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part23 Enum

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は Dart編 ( part23 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part22 コンストラクタ

今回からEnumの学習を行います。

Enum

Dartでは列挙型も実装されています。
列挙された項目には宣言準にindexが割り当てられます。
先頭の項目のindexは0です。

すべての列挙値を取得するにはvaluesプロパティを使用します。

enum Color {red , green, yellow}

void main() {
  var list = Color.values;
  for( var item in list) {
    print(item);
  }
}

switch文で使用する際はすべての列挙値を使用しないと警告がでます。
これは面白い機能ですね!もれなく実装しているか自動でチェックしてくれるなんてありがたいです。

enum Color {red , green, yellow}

void main() {
  var list = Color.values;
  for( var item in list) {
    print(item);
  }
  
  var hoge = Color.green;
  
  switch(hoge) {
    case Color.red:
      print('赤です');
  }
}

DartPadでも確かに警告が出ていますね。

制限事項

extends, with, implementsすることはできません。
継承できないし、ミックスインもできない、インターフェイスとしての利用もできないということですね。

明示的にインスタンス化することはできません。

最後に

最近の言語は当たり前なのかもしれませんが列挙型にインデックスプロパティがあるのは便利でよいですよね。
列挙型を使うとコードを読みやすくなりますしなによりチーム開発での思い違いや不具合も減ります。
活用していきたいと思います。

今日はここまで!