SwiftUI: ForEach, forEach, for in の違い

SwiftUIでは、ForEach, forEach, for in の動きが異なります。

import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            // OK
            // SwiftUI の ForEach は View を返すので OK
            ForEach(1..<5) { i in Text("hello") }
            // Error: Closure containing control flow statement cannot be used with result builder 'ViewBuilder'
            // クロージャーを持つ制御文は 複数のView を構成する ViewBuilder として使えない
            // 要は、次のように複数の Text からなる View を構成することができない
            for i in 1..<5 { Text("hello") }
            // Error: Type '()' cannot conform to 'View'
            // forEach は View を返さない
            [1,2,3,4].forEach{ d in Text("hello") }

投稿者: admin

Free Software Engineer