【SwiftUI】SwiftUIだと繰り返し処理はforではなくForEachを使わないといけない

Xcode (13.3.1)

はじめに

タイトルの通りSwiftUIのbodyの実装ではforやforEachは使えないという洗礼を受けてしまったのでそこを共有していこうと思います。

これはダメな例

Listの中にfor文で5個Textを配置するというプログラムを書きます

var body: some View {
    List {
        for i in 0..<5 {
            Text("Hoge")
        }
    }
}

↓のエラーが出てしいます。

Closure containing control flow statement cannot be used with result builder 'ViewBuilder'

このようにbodyの中ではforが使えません(forEachも使えません)

参考にした書籍

代わりにForEachを使おう

var body: some View {
    List {
        ForEach (0..<5) { i in
            Text("Hoge")
        }
    }
}

どうやらForEachはSwiftUI専用に作られた繰り返しするための構造体のようです。

おわりに

ForEachはStoryboardでプログラム組んでるときに見てないキーワードだなぁと思ってましたが、SwiftUI用だったんですね。

また1つ勉強になりました。

最後まで見ていただきヘペトナス!

読者登録・Twitterのフォローもお願いします。