列挙型 (enumeration) は、関連する値のグループに共通の型を定義し、型安全(タイプセーフ)な方法でそれらの関連値を扱うことができるようにするものです。

C の列挙型は、整数値の集合に関連する名前を割り当てます。Swift での列挙型はずっと柔軟で、列挙型のケースごとに値を持たせる必要はありません。列挙型の各ケースに値(raw 値)を持たせる場合には、値を文字列や文字、あるいは整数型や浮動小数点数型の値にすることができます。

あるいは、他の言語における union や variant と同じように、列挙型のケースごとに異なる値を持つ、任意の型の関連値を指定することができます。列挙型の一部として関連するケースに共通の集合を定義し、適切な型の異なる値の集合を持たせることができます。

Swift の列挙型は他に依存しないファーストクラスの型です。列挙型の現在値についての追加情報を算出するプロパティ (computed property) や、列挙型が表現する値に関連する機能を持つインスタンスメソッドのような、伝統的にクラスがサポートしていた特徴の多くを採り入れています。列挙型は、ケースの初期値を受け取るイニシャライザを定義することや、元の実装を越える機能に拡張すること、標準的な機能を有するプロトコルに準拠することが可能です。

各機能の詳細は、Properties, Methods, Initialization, Extensions, Protocols を確認してください。


Portions of this page are translations based on work created and shared by Apple and used according to terms described in the Creative Commons Attribution 4.0 International License.