44. FlutterのenumでIntかStringのvalueを返す
今回はDartのenum について深堀りしてみます。 enum 自体は以前に学習しましたが、value をカスタムにしたいと思い調べてみました。
以前の記事
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 を与えたかったのですが、 これの実現方法について調べてみました。
こちらを参考にして次のように書くと実現できました。
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 を参考にしてもうちょっと柔軟な書き方ができるといいですね!