Dart

44. FlutterのenumでIntかStringのvalueを返す

今回はDartのenum について深堀りしてみます。
enum 自体は以前に学習しましたが、value をカスタムにしたいと思い調べてみました。

以前の記事

Swift でいうところの

enum Section: Int {
    case first = 1
    case second = 2
    case third = 3
}

こんな感じにenum にcustom な rawValue を与えたかったのですが、
これの実現方法について調べてみました。

こちらを参考にして次のように書くと実現できました。

enum Section {
  Top,
  Relax,
  ActivityMood,
  ShortMovie,
}

_sectionToInt(Section section){
  switch (section) {
    case Section.Top:
      return 0;
    case Section.Relax:
      return 2;
    case Section.ActivityMood:
      return 4;
    case Section.ShortMovie:
      return 6;
    default:
      return 0;
  }
}

他にもいい書き方があるのかもしれませんが一先ずはこれでいきます。
DartもSwift を参考にしてもうちょっと柔軟な書き方ができるといいですね!

ABOUT ME
tamappe
都内で働くiOSアプリエンジニアのTamappeです。 当ブログではモバイルアプリの開発手法について紹介しています。メインはiOS、サブでFlutter, Android も対応できます。 執筆・講演のご相談は tamapppe@gmail.com までお問い合わせください。