为自定义私有类实现 Equatable - Swift
Posted
技术标签:
【中文标题】为自定义私有类实现 Equatable - Swift【英文标题】:Implement Equatable for custom private class - Swift 【发布时间】:2015-11-27 05:38:23 【问题描述】:我知道如何为非私有类实现 Equatable(通过编写 == 运算符函数),但是这对于私有类不起作用,因为“运算符只允许在全局范围内”。问题是,在全局范围内,私有类是不可见的,那么我该如何实现它的 == 运算符..?
private class Foo : Equatable
var bar = ""
func == (lhs: Foo, rhs: Foo) -> Bool
return lhs.bar == rhs.bar
错误:使用未声明的类型 Foo
【问题讨论】:
【参考方案1】:您还需要将您的 ==
运算符函数声明为 private
才能正常工作。默认情况下,函数的作用域为 internal
,并且您不能拥有具有私有作用域参数或返回类型的内部方法。
private class Foo : Equatable
var bar = ""
private func ==(lhs: Foo, rhs: Foo) -> Bool
return lhs.bar == rhs.bar
【讨论】:
以上是关于为自定义私有类实现 Equatable - Swift的主要内容,如果未能解决你的问题,请参考以下文章
在 Objective C 中为自定义类实现委托时的引用计数