Swift-enumerations
Swift-列挙
列挙は、関連する値のセットで構成されるユーザー定義のデータ型です。 キーワード enum は、列挙データ型を定義するために使用されます。
列挙機能
Swift 4の列挙も、CおよびObjective Cの構造に似ています。
- クラスで宣言され、その値はそのクラスのインスタンスを通じてアクセスされます。
- 初期メンバー値は、列挙型の初期化子を使用して定義されます。
- 標準のプロトコル機能を確保することにより、その機能も拡張されています。
構文
列挙型は列挙型キーワードで導入され、その定義全体を中括弧のペア内に配置します-
たとえば、次のように曜日の列挙を定義することができます-
例
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-
Swift 4列挙は、CやObjective Cのようなデフォルト値をメンバーに割り当てません。 代わりに、メンバーは列挙名によって明示的に定義されます。 列挙名は大文字で始める必要があります(例:enum DaysofaWeek)。
ここでは、列挙名「DaysofaWeek」が変数weekday.Sundayに割り当てられています。 データ型が日曜日に属することは、その特定のクラスの後続の列挙型メンバーに割り当てられることをコンパイラーに通知します。 列挙メンバーデータ型が定義されると、値と追加の計算を渡すことでメンバーにアクセスできます。
Switchステートメントを使用した列挙
Swift 4の「Switch」ステートメントも、マルチウェイ選択に従います。 指定された条件に基づいて特定の時間にアクセスされる変数は1つだけです。 switchステートメントのデフォルトケースは、未指定のケースをトラップするために使用されます。
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-
プログラムは最初に気候を列挙名として定義します。 その後、「インド」、「アメリカ」、「アフリカ」、「オーストラリア」などのメンバーは、クラス「気候」に属すると宣言されます。 これで、メンバーAmericaがシーズン変数に割り当てられました。 さらに、Switch caseは.Americaに対応する値を確認し、その特定のステートメントに分岐します。 出力は「気候は寒い」と表示されます。 同様に、すべてのメンバーはswitchステートメントを介してアクセスできます。 条件が満たされない場合、デフォルトで「気候は予測不可能です」と印刷されます。
列挙は、関連する値と生の値にさらに分類できます。
関連する値と生の値の違い
Associated Values | Raw Values |
Different Datatypes | Same Datatypes |
Ex: enum \{10,0.8,"Hello"} | Ex: enum \{10,35,50} |
Values are created based on constant or variable | Prepopulated Values |
Varies when declared each time | Value for member is same |
関連する値を持つ列挙
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-
たとえば、3つのサブジェクトで保護されている学生の名前とマークにアクセスするとします。列挙名はstudentとして宣言され、enumクラスに存在するメンバーは文字列データ型に属する名前です。 学生の名前または採点したマークにアクセスするには
現在、switch caseは、そのcaseブロックが実行された場合、学生名を印刷します。そうでない場合、学生によって保護されたマークを印刷します。 両方の条件が満たされない場合、デフォルトのブロックが実行されます。
生の値を持つ列挙
生の値は、文字列、文字、または整数型または浮動小数点型のいずれかです。 各生の値は、列挙宣言内で一意である必要があります。 生の値に整数が使用されている場合、一部の列挙メンバーに値が指定されていない場合、整数は自動的に増加します。
プレイグラウンドを使用して上記のプログラムを実行すると、次の結果が得られます-