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

时间:2017-02-11 23:57:23

标签: swift enums

考虑:

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

var test: Test = ...

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

switch test {
case .bar:
    doSomething()
default:
    break
}

如果我可以改为使用if

,那就更加清晰了
if test == .bar {
    doSomething()
}

但除非我遗漏了什么,否则无法做到:

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

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

1 个答案:

答案 0 :(得分:18)

您可以使用if-case操作数

if case .foo  = test {
   doSomething()
}