我对 Swift 中的可选链接和 nil-coalescing 有一个奇怪的问题。谁能解释为什么以下代码无法编译:
class A<T> {
var val: T
var x: A<T>?
var y: A<T>?
init(t:T){
val = t
}
func test() -> [T] {
return (self.x?.test() ?? []) + [val] + (self.y?.test() ?? [])
}
}
但是写的时候
func test() -> [T] {
return (self.x?.test() ?? []) + ([val] + (self.y?.test() ?? []))
}
有吗?错误说:
Cannot convert value of type '[T]?' to expected argument type '[_]?'
对我来说,它看起来很像编译器错误。