为自定义私有实现 Equatable class - Swift

Implement Equatable for custom private class - Swift

我知道如何为非私有 class 实现 Equatable(通过编写 == 运算符函数),但是这不适用于私有 class,因为 "Operators are only allowed at global scope".问题是,在全局范围内,private class 是不可见的,那么我该如何实现它的 == 运算符..?

private class Foo : Equatable{
    var bar = ""
}

func == (lhs: Foo, rhs: Foo) -> Bool {
        return lhs.bar == rhs.bar
}

错误:使用了未声明的类型 Foo

您还需要将 == 运算符函数声明为 private 才能正常工作。默认情况下,函数的作用域为 internal,并且您不能拥有具有私有作用域参数或 return 类型的内部方法。

private class Foo : Equatable {
    var bar = ""
}

private func ==(lhs: Foo, rhs: Foo) -> Bool {
        return lhs.bar == rhs.bar
}