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

时间:2015-11-27 05:38:24

标签: swift equatable

我知道如何为非私有类实现Equatable(通过编写==运算符函数),但是这对于私有类不起作用,因为“操作符只允许在全局范围内”。问题是,在全局范围内,私有类是不可见的,所以我如何实现其==运算符..?

 $scope.users = function() {
        alert("user")    
 };

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

1 个答案:

答案 0 :(得分:3)

您还需要将==运算符函数声明为private才能生效。默认情况下,函数的作用域为internal,您不能拥有带有私有范围参数或返回类型的内部方法。

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

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