首页 > 关于swift里两个object的比较

关于swift里两个object的比较

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
    }
}
【热门文章】
【热门文章】