如何在Swift中为私有枚举编写一个相等的方法
发布时间:2020-12-14 05:40:00 所属栏目:百科 来源:网络整理
导读:我是 Swift的新手,并且正在尝试编写一个符合Equatable的私有枚举.以下是我的代码的简化表示: class Baz { /* Other members in class Baz */ private enum Test: Equatable { case Foo case Bar } private func == (lhs: Test,rhs: Test) - Bool { //compar
我是
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 你能用你的代码编辑你的问题吗?所以我可以编辑我的答案以适应您的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |