我可以在不使用switch语句的情况下测试枚举值是否是特定情况吗?

use*_*993 12 enums swift

考虑:

enum Test {
    case foo
    case bar
    case baz
    case etc
}

var test: Test = ...
Run Code Online (Sandbox Code Playgroud)

我想测试枚举是否bar特别.我可以使用switch语句:

switch test {
case .bar:
    doSomething()
default:
    break
}
Run Code Online (Sandbox Code Playgroud)

如果我可以改为使用它会更加简洁if:

if test == .bar {
    doSomething()
}
Run Code Online (Sandbox Code Playgroud)

但除非我遗漏了什么,否则没有办法做到这一点:

Binary operator '==' cannot be applied to two 'Test' operands

这是否可能,如果不是,这是一个刻意的语言设计决定吗?

Ste*_*fan 24

您可以使用if-case操作数

if case .foo  = test {
   doSomething()
}
Run Code Online (Sandbox Code Playgroud)