Swift Gleichheitsoperator für verschachtelte Arrays

Warum schlägt die Kompilierung der letzten Anweisung mit dem Fehler fehl:Binary operator '==' cannot be applied to two '[[Simple]]’ operands, und gibt es eine Möglichkeit, das @ zu änderSimple struct oder erweitere das== -Operator, um in der Lage zu sein, Gleichheitsprüfungen für verschachtelte Arrays (oder Wörterbücher) durchzuführen?

var i1: [Int] = [1]
var i2: [Int] = [1]
i1 == i2 // -> true


var i3: [[Int]] = [[1], [2]]
var i4: [[Int]] = [[1], [2]]
i3 == i4 // -> true


struct Simple: Equatable, Hashable {
    let message: String

    var hashValue: Int {
        return message.hashValue
    }
}
func ==(lhs: Simple, rhs: Simple) -> Bool {
    return lhs.message == rhs.message
}

var a: [Simple] = [Simple(message: "a")]
var b: [Simple] = [Simple(message: "a")]
a == b // -> true

var x: [[Simple]] = [[Simple(message: "a")], [Simple(message: "b")]]
var y: [[Simple]] = [[Simple(message: "a")], [Simple(message: "b")]]
x == y // -> ERROR! Binary operator '==' cannot be applied to two '[[Simple]]’ operands

Antworten auf die Frage(4)

Ihre Antwort auf die Frage