enum要素をListに展開する方法【SwiftUI】

固定要素のリスト表示をする場合、定数の配列を展開することが多いかと思いますが、enumで定義した要素を展開することも出来ます。

enum要素をListに展開する方法

早速コード例を見ていきましょう。

struct ContentView: View {
    
    enum ProgramingLanguages: String, CaseIterable {
        case swift = "Swift"
        case java = "Java"
        case csharp = "C#"
        case php = "PHP"
        case ruby = "Ruby"
        case kotlin = "Kotlin"
        case python = "Python"
    }
    
    var body: some View {
        List(ProgramingLanguages.allCases, id: \.self) { language in
            Text(language.rawValue)
        }
    }
}

ポイントは enum に CaseIterable プロトコルを継承しているところです。これを継承することで、List に展開する際に allCases プロパティを使用することが出来ます。

allCases の実体は以下のようになっています。

static var allCases: [ProgramingLanguages] {
    return [.swift, .java, .csharp, .php, .ruby, .kotlin, .python]
}

最後に実行画面を貼っておきます。

CaseIterable の公式リファレンスはこちらです。

今回は短いですが、以上です。