【发布时间】:2023-04-05 04:02:02
【问题描述】:
我对 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 '[_]?'
对我来说,它看起来很像编译器错误。
【问题讨论】:
-
它看起来确实有点像一个错误。也许去他们的bugs页面发帖。