Qualcuno può darmi una buona ragione per cui questo non funziona:Perché equatable non definiti per gli array opzionali
let a: [Int]? = [1]
let b: [Int]? = nil
a == b
Questa sarebbe la mia soluzione proposta (se poco elegante). Ma è banale, quindi mi sento come se mi mancasse una buona ragione per cui questo non è implementato.
func ==<T: Equatable>(lhs: [T]?, rhs: [T]?) -> Bool {
if let lhs = lhs, let rhs = rhs {
return lhs == rhs
}
else if let _ = lhs {
return false
}
else if let _ = rhs {
return false
}
return true
}
Infatti valore opzionale è enum: 'enum OptionalValue {caso Nessuno caso Alcuni (T)}' che può essere 'Nessuno' o il tuo tipo, quando si assegna valore uguale a matrice opzionale restituisce maiuscole/minuscole non uguali Nessuno restituisce in caso di secondo erray di stial nessun tipo In effetti è diverso quando si fa 'a == b' –