Swift Enum Equatable 预期参数问题

Swift Enum Equatable expected argument issue

我正在使用如下枚举:

enum Views: Equatable {
    case home
    case poules(pouleID: String?)
}

我必须将枚举变量设置为 .home.poules。 Poules 也可以有这样的参数:router.currentView = .poules(pouleID: "TEST").

但是,当我想测试变量的类型是.home还是.poules(而不是不想提取参数)时,我得到以下错误:

if router.currentView == .poules { // <--- (Error: Member 'poules(pouleID:)' expects argument of type 'String')
    // Do something
}

我在这里做错了什么?我对其他枚举使用了相同的结构,没有遇到任何问题。

测试变量是否属于 .poules 类型的一种简单方法是将实际比较移动到枚举的计算 属性 中。这也是有道理的,因为这种比较并不是真正用于 Equatable

var isAnyPoules: Bool {
    if case .poules = self { return true }

    return false
}

这将使执行检查变得更容易

if router.currentView.isAnyPoules 

.transition(viewRouter.originView.isAnyPoules ? X : X)