开始

12/5/2021 swiftiosswiftui

# 开始

这个语法特性叫 Function Builders (opens new window),还没有正式添加到 Swift 语言中,只有草案。苹果直接修改了 Swift 编译器,SwiftUI 已经在用这个语法特性了。

ViewBuilder 结构使用了 @_functionBuilder 来修饰。而闭包使用 @ViewBuilder 来修饰,就会修改语法树,转调 ViewBuilderbuildBlock 函数。于是

VStack {
    Text("Hello World")
    Text("Hello SwiftUI")
    Text("Hello Friends")
}

就相当于:

VStack {
    return ViewBuilder.buildBlock(
        Text("Hello World"),
        Text("Hello SwiftUI"),
        Text("Hello Friends")
    )
}

# 参阅

上次更新: 1/12/2022, 7:28:48 AM