Я пытаюсь осознать @_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")
}