我想把头绕过去@_functionBuilder
。有一种情况我无法弄清楚。
我把这个简单的例子放在一起,当有两个乘客时,效果很好。但是当只有 1 我得到这个错误:
error: FunctionBuilder.playground:21:5: error: cannot convert value of type 'Passanger' to closure result type '[Passanger]'
@_functionBuilder
struct PassangerBuilder {
static func buildBlock(_ passangers: Passanger...) -> [Passanger] {
return passangers
}
}
struct Passanger {
let name: String
}
struct Car {
let passangers: [Passanger]
init(@PassangerBuilder _ builder: () -> [Passanger]) {
self.passangers = builder()
}
}
Car {
Passanger(name: "Tom")
// Passanger(name: "Mary")
}