【Swift/SwiftUI】列挙型から実体を用いて値を取り出す方法
本記事では、列挙型データに実体となるデータを割り当てた場合に、その実体データを用いて列挙型データの中から値を取り出す方法と使用例について丁寧に解説していきます。
列挙型に実体を割り当てる
列挙型データを定義する方法については別の記事で書いていますのでこちらをご覧ください。
本記事でも以下の列挙型の例を用いて簡単に実体をメンバに割り当てる方法の解説を進めていきます。
enum OperatingSystem :Int {
case mac = 0
case windows = 1
case chrome = 2
case linux = 3
}
列挙型の実体を代入するには、列挙型名の後ろに代入する実体のデータ型を宣言します。Int型を宣言した場合には、Int型以外の実体を各メンバに割り当てることができません。
また、実体は各メンバを識別するために使用するものであるため、一意の値にする必要があり、重複する値を設定することはできません。
列挙型から実体を取得する
まず列挙型のメンバの実体を取得するには、rawValueを使用します。これはメンバを指定した上で実体を取得する方法で、例ではIntの値を取得することができ、存在しないメンバを指定するとコンパイルエラーとなります。
enum OperatingSystem :Int {
case mac = 0
case windows = 1
case chrome = 2
case linux = 3
}
var selectOS = OperatingSystem.mac
print(selectedOS.rawValue)
//実行結果:0
列挙型から実体を用いてデータを取り出す
ここから本題の実体データからメンバを逆引きして取得する方法をご紹介します。
記述方法は「列挙型名(rawValue: 実体)」となり、rawValueのパラメータとして実体データを渡してあげることでメンバを取得することができます。
enum OperatingSystem :Int {
case mac = 0
case windows = 1
case chrome = 2
case linux = 3
}
if var os = OperatingSystem(rawValue: 3) {
print("選択されたOSは: \(os)")
} else {
print("該当するOSが存在しない")
}
//実行結果:選択されたOSは: .linux
実体データから列挙型内のメンバを取得する場合、取得したデータは列挙型のオプショナル型データになるため、取得時、あるいは参照時にはアンラップする必要があります。
これは、実体としてパラメータに指定した値が列挙型内に存在しない可能性があるためであり、存在しない実体データを指定した場合にはnilが返却されます。
最後に
本記事では、Swiftの列挙型データに実体を割り当てて実体を取得する方法と、実体からメンバを取得する方法について解説してきました。
- 実体を割り当てるには列挙型にデータ型を指定し、各メンバに代入
- 実体を取得するにはrawValueを使用
- 「列挙型名(rawValue: 実体)」で実体からメンバを取得可能
- 実体からメンバを取得した場合にはオプショナル型での取得となる
他にもSwiftで頻繁に使用するオプショナル型データのアンラップ方法や配列で使用可能なメソッド・プロパティの一覧なども紹介していますのでそちらもご覧くださいませ。
-
前の記事
【Swift/SwiftUI】列挙型の定義と使用方法 2025.07.25
-
次の記事
【Swift/SwiftUI】列挙型でイニシャライザを定義 2026.01.31