Swift里有没有办法来比较两个object是不是“相等”(不是一定要===)?
以下面的代码举例,person2和3所有的数值都是一样的,那么2==3就成立。
class Person {
var firstName: String
var lastName: String
var height: Float
var weight: Float
init(firstName: String, lastName: String, height: Float, weight: Float) {
self.firstName = firstName
self.lastName = lastName
self.height = height
self.weight = weight
}
}
var person1 = Person(firstName: "Jim", lastName: "Gordon", height: 180, weight: 85)
var person2 = Person(firstName: "Tom", lastName: "Green", height: 170, weight: 70)
var person3 = Person(firstName: "Tom", lastName: "Green", height: 170, weight: 70)
可以写一个下面的方法,但是这个方法要放到上面Person的大括号外面才行,有没有办法在这个类的声明里就直接定义怎么来比较这个类?
func ==(lhs: Person, rhs: Person) -> Bool {
return (lhs.height == rhs.height) && .. && ..
}
如果希望实现Equatable协议,请定义全局 == 运算符重载
func == (left: test, right: test) -> Bool
{
if left.C == right.C
{
return true
}
else
{
return false
}
}
class test:Equatable{
let C: Double = 0.0
}
如果想在类内实现
class test:Equatable{
let C: Double = 0.0
func equalTo(object:test)->Bool{
return object.C == self.C
}
}