J'ai un problème étrange avec le chaînage optionnel et la coalescence nulle dans Swift. Quelqu'un peut-il expliquer pourquoi le code suivant ne compile pas:Swift: erreur de compilation avec chaînage optionnel et coalescence nulle
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() ?? [])
}
}
Mais lors de l'écriture
func test() -> [T] {
return (self.x?.test() ?? []) + ([val] + (self.y?.test() ?? []))
}
Il fait? L'erreur dit:
Cannot convert value of type '[T]?' to expected argument type '[_]?'
Pour moi, il ressemble beaucoup comme un bug du compilateur.
Il ne semble un peu comme un bug. Peut-être publier sur leur page [bugs] (https://bugs.swift.org/). –