リバース・エンジニアリング

Flultterとテックブログと時々iOS

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

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

以前の記事

blog.tamappe.com

Swift でいうところの

https://docs.swift.org/swift-book/LanguageGuide/Enumerations.html

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

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

github.com

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

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 を参考にしてもうちょっと柔軟な書き方ができるといいですね!