我是
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
你能用你的代码编辑你的问题吗?所以我可以编辑我的答案以适应您的问题.