我知道如何为非私有类实现Equatable(通过编写==运算符函数),但是这对于私有类不起作用,因为“操作符只允许在全局范围内”。问题是,在全局范围内,私有类是不可见的,所以我如何实现其==运算符..?
$scope.users = function() {
alert("user")
};
错误:使用未声明的类型Foo
答案 0 :(得分:3)
您还需要将==
运算符函数声明为private
才能生效。默认情况下,函数的作用域为internal
,您不能拥有带有私有范围参数或返回类型的内部方法。
private class Foo : Equatable {
var bar = ""
}
private func ==(lhs: Foo, rhs: Foo) -> Bool {
return lhs.bar == rhs.bar
}