値を指定するということは、それを使いたい場合がほとんどだと思います。値が必要』というくらいしか読み取れません。値に相当する振る舞いを列挙型に付与できないかを考えるのが、大事になってくるのかなって思います。そんな観点で、こういった場合はこう表現したらどうだろう、そんなことを記してみます。文字列として表示する列挙型を作りたいとき列挙型の値をそのまま文字列で表示したい、または少し変えた文字列で表示したいときがあるかもしれません。値に文字列を持たせて使いたくなることがあるかもしれません。ため、保守時の悩みが増えてしまうかもしれません。値で表示文字列を表現した場合、逆に表示文字列から列挙子を作る機能も自動的に実装されます。それって、意図して使えるようにしたものでしょうか、表示文字から列挙子を作る必要ってあるでしょうか、自分には判断する自信がありません。プロトコルが用意されています。これに準拠した型は、それが表現する値そのものを表現できる性質を持ちます。みたいに表示されるのも、この仕組みで実現されています。適切に意図を表現してくれます。値を使わなくても、列挙型の値を文字列で表現できるようになります。プロパティーを明記しなくて良いので、とても自然なコードが書けるのも嬉しいところです。インスタンスをそのまま、文字列かのように表示できる。規定した適切な表現で文字列型にしてくれます。ことだけができるようになり、表示用文字列から列挙型の値を作る機能は備わらないため、完全に安全性を保ったまま、文字列で表現する機能が備わるところが魅力です。値をそのまま使っても、ある程度は妥当な気がします。値がシリアライズで使われていることを見落としてしまうかもしれません。繋がりそうな気がします。値に頼らず、明らかに用途がわかる振る舞いを実装するのが良い気がします。なって良いような気がします。使わず実装すれば、今後に選択肢が増えたとしても、コンパイラーによる網羅性チェックのおかげで、新たに追加した値を登録し忘れなくて済むのが嬉しいところです。ため、追加し忘れは防げます。値を使った方が良かったりするかもわかりません。値にアクセスしない運用ルールを設けたりする方が、コードの可読性が上がりそうな気がします。型の値で表現して、みたいな要望があるときに、ちゃんと対応できるところです。値で実装するとなると、どちらかでしか表現できなくなってしまいます。どちらがメインでどちらがオマケということもないでしょうから、両方とも対等に独自機能として実装できるということは、なかなか良い利点かなって思います。使って列挙子を作る手もあるかもしれません。値を持たせずに、専用のイニシャライザーを実装して、コードを見れば何をしたいのかわかるようにするのが良いように感じます。番号を取得する必要ってなさそうで、使わないのにあっても混乱するばかりなので、それについては実装しないておくことにします。}}このようにすることで、押されたボタンのタグを使って列挙型を生成することも簡単ですし、コードを読むだけでそうしたいことがすぐにわかります。番号として、何にも縛られない自由なルールで番号付けできるところも嬉しいんじゃないかなって思います。対応するアイコン画像を取得したい場合たとえば、列挙型の値に応じたアイコン画像が用意されていたとして、それを取得できるようにしたいとします。追加する方法が考えられます。それを具体的に示すとすれば、次のようになるでしょうか。}}このように実装することで、値に応じて適切な画像を取得できるようになります。行を書かないことで、今後に選択肢が追加されたときに網羅性チェックが働いて、新しい選択肢に対応するアイコン画像の返却忘れが起こらないことを期待しています。このとき、次のように実装する方法もあるかもしれません。みたいに徹底されているとするなら、後者(その2)でも悪くはないのかもしれません。画像に、列挙型からの変換機能を持たせる例もうひとつの方法として、画像型に変換機能を持たせる方法が考えられます。型に、次のような実装を追加するのが理想のように感じます。ことができるようになり、より自然にアイコン画像への変換ができるようになると感じます。ように実装しているところでしょうか。採る値は限られていて、それらすべてに画像リソースが割り当てられている前提です。この時、仕様上は絶対に画像に変換できるため、ここでは失敗しないイニシャライザーとして実装することで、変換できることを約束(コードで主張)しています。使いたい場合があります。値を定義するのが妥当に思います。