Principle05
约 160 字小于 1 分钟
swiftiosswiftui
2024-08-02
这个语法特性叫 Function Builders,还没有正式添加到 Swift 语言中,只有草案。苹果直接修改了 Swift 编译器,SwiftUI 已经在用这个语法特性了。
ViewBuilder 结构使用了 @_functionBuilder 来修饰。而闭包使用 @ViewBuilder 来修饰,就会修改语法树,转调 ViewBuilder 的 buildBlock 函数。于是
VStack {
Text("Hello World")
Text("Hello SwiftUI")
Text("Hello Friends")
}就相当于:
VStack {
return ViewBuilder.buildBlock(
Text("Hello World"),
Text("Hello SwiftUI"),
Text("Hello Friends")
)
}
