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

前端之家收集整理的这篇文章主要介绍了如何在Swift中为私有枚举编写一个相等的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 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

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

原文链接:https://www.f2er.com/swift/318699.html

猜你在找的Swift相关文章