Swift,Hashableプロトコルの準拠に関して。
自作したclassを集合を使った処理にかけたいです。
そのために自作の型にHashableプロトコルに準拠させたいのですが、
swiftリファレンスの翻訳版より、
struct GridPoint {
var x: Int
var y: Int
}
extension GridPoint: Hashable {
var hashValue: Int {
return x.hashValue ^ y.hashValue
}
static func == (lhs: GridPoint, rhs: GridPoint) -> Bool {
return lhs.x == rhs.x && lhs.y == rhs.y
}
}
この部分が理解することが難しいので質問させていただきました。
つまり何を定義しなくてはならないのでしょうか?