如何在Swift中为私有枚举编写一个相等的方法

如何在Swift中为私有枚举编写一个相等的方法,第1张

概述我是 Swift的新手,并且正在尝试编写一个符合Equatable的私有枚举.以下是我的代码的简化表示: class Baz { /* Other members in class Baz */ private enum Test: Equatable { case Foo case Bar } private func == 我是 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

你能用你的代码编辑你的问题吗?所以我可以编辑我的答案以适应您的问题.

总结

以上是内存溢出为你收集整理的如何在Swift中为私有枚举编写一个相等的方法全部内容,希望文章能够帮你解决如何在Swift中为私有枚举编写一个相等的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1043388.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存