Swift 配列にオブジェクトの特定のインスタンスが含まれているかどうかを確認するにはどうすればよいですか? 次の簡単な例を考えてみましょう。
class Car {}
let mazda = Car()
let toyata = Car()
let myCars = [mazda, toyata]
myCars.contains(mazda) // ERROR!
Car調査の結果、クラスはEquatableプロトコルを採用しなければならないという結論に達しました。それは事実のようです:
class Car: Equatable {
static func ==(lhs: Car, rhs: Car) -> Bool {
return true
}
}
その後myCars.contains(mazda)、実際に戻りtrueます。
ただし、の実装==は明らかに私が望んでいるものではありません。私が本当に返してほしいのは、次の質問への答えです:lhsとrhs同じCarインスタンスですか?
本当にそんなに複雑ですか?
ありがとう!