class A: Equatable {
var num: Int
var value: String = "abc"
init(n: Int) {
num = n
}
}
func ==(lhs: A, rhs: A) -> Bool {
return lhs.num == rhs.num
}
// 各プロパティが同じかどうかの判定
func ==(lhs: A, rhs: A) -> Bool {
return lhs.num == rhs.num && lhs.value == rhs.value
}
// オブジェクト同士が同じかどうかの判定
func ==(lhs: A, rhs: A) -> Bool {
return lh === rhs
}
/*
// func ==(lhs: A, rhs: A) -> Bool としては同じものとなるのでどれか1つのみ定義できる。
var aa = A(n: 1234)
var aaa = aa
if aa == aaa {
print("Equatable") // true
} else {
print("No Equatable")
}
*/
var a = A(n: 1234)
var b = A(n: 1234)
if a == b {
print("Equatable Num")
} else {
print("No Equatable Num")
}
//=> Equatable Num
Last active
May 4, 2016 00:40
-
-
Save KentarouKanno/e9f6429ff726634c53c8fa7ba1c7a678 to your computer and use it in GitHub Desktop.
Equatable
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment