为自定义私有实现 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
}
我知道如何为非私有 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
}