开始
oldbirds 12/5/2021 swiftiosswiftui
# 开始
这个语法特性叫 Function Builders (opens new window),还没有正式添加到 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")
)
}