我知道如何为非私有(private)类实现 Equatable(通过编写 == 运算符函数),但是这不适用于私有(private)类,因为“仅允许在全局范围内使用运算符”。问题是,在全局范围内,私有(private)类是不可见的,那么我该如何实现它的 == 运算符..?
private class Foo : Equatable{
var bar = ""
}
func == (lhs: Foo, rhs: Foo) -> Bool {
return lhs.bar == rhs.bar
}
错误:使用了未声明的类型 Foo
最佳答案
您还需要将 ==
运算符函数声明为 private
才能正常工作。默认情况下,函数的作用域为 internal
,您不能拥有具有私有(private)作用域参数或返回类型的内部方法。
private class Foo : Equatable {
var bar = ""
}
private func ==(lhs: Foo, rhs: Foo) -> Bool {
return lhs.bar == rhs.bar
}
关于swift - 为自定义私有(private)类实现 Equatable - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33950875/