我是
Swift的新手,并且正在尝试编写一个符合Equatable的私有枚举.以下是我的代码的简化表示:
class Baz {
/* Other members in class Baz */
private enum Test: Equatable {
case Foo
case Bar
}
private func == (lhs: Test,rhs: Test) -> Bool {
//comparison
}
}
在“==”方法的行上,编译器抱怨“操作符只允许在全局范围内”.当我将enum Test和“==”方法更改为public时,将“==”移出类,然后错误消失.
我的问题是为私有枚举实现“==”方法的正确方法是什么?
任何帮助表示赞赏.
========
编辑:
谢谢大家帮帮我.我没有指定上面的私有枚举和函数在类中..(代码已更新)
我在游乐场试过,它对我有用:
private enum Test: Equatable {
case Foo
case Bar
}
private func ==(lhs: Test,rhs: Test) -> Bool {
return true
}
class A {
func aFunc() {
let test: Test = .Foo
let test2: Test = .Foo
if (test == test2) {
print("Hello world")
}
}
}
let a = A()
a.aFunc() // Hello world
你能用你的代码编辑你的问题吗?所以我可以编辑我的答案以适应您的问题.