Swift 3. + Conforming Equatable - 内部和静态OR全局方法?

时间:2018-03-22 14:36:29

标签: swift swift3 swift4 swift-protocols

我在某些项目中使用“Equatable”协议,但我想知道......通过全局解决方案和通过静态解决方案(可从swift 3获得)?

示例:

class ExampleClass {
    let value: Int = 0
}

// #1: Global Approach
extension ExampleClass: Equatable { }

func == (lhs: ExampleClass, rhs: ExampleClass) -> Bool {
    return lhs.value == rhs.value
}

// #2: Internal static approach (Swift 3+)
extension ExampleClass: Equatable {
    static func ==(lhs: ExampleClass, rhs: ExampleClass) -> Bool {
        return lhs.value == rhs.value
    }
}

结果似乎相同,但第二种方法对我来说似乎更干净。但实际上真的有区别吗? 最后,我们在两种情况下都做了超载。

我可能的答案就是在swift 3之前:public static func ==(lhs: Self, rhs: Self) -> Bool以另一种方式宣告,但我只是假设它!

0 个答案:

没有答案