为自定义私有类实现Equalable-Swift
我知道如何为非私有类实现Equatable(通过编写==运算符函数),但是这不适用于私有类,因为“只允许在全局范围内使用运算符”。问题是,在全局范围内,私有类不可见,所以如何实现它的==运算符为自定义私有类实现Equalable-Swift,swift,equatable,Swift,Equatable,我知道如何为非私有类实现Equatable(通过编写==运算符函数),但是这不适用于私有类,因为“只允许在全局范围内使用运算符”。问题是,在全局范围内,私有类不可见,所以如何实现它的==运算符 private class Foo : Equatable{ var bar = "" } func == (lhs: Foo, rhs: Foo) -> Bool { return lhs.bar == rhs.bar } 错误:使用未声明的类型Foo您还需要将您的=运
private class Foo : Equatable{
var bar = ""
}
func == (lhs: Foo, rhs: Foo) -> Bool {
return lhs.bar == rhs.bar
}
错误:使用未声明的类型Foo您还需要将您的
=
运算符函数声明为private
,以使其工作。默认情况下,函数的作用域为internal
,并且您不能拥有具有私有作用域参数或返回类型的内部方法
private class Foo : Equatable {
var bar = ""
}
private func ==(lhs: Foo, rhs: Foo) -> Bool {
return lhs.bar == rhs.bar
}