是否有一些很好的方法来测试变量是否等于某些枚举值?

时间:2016-05-12 08:36:45

标签: swift

示例代码:

enum myEnum {
  case foo, bar, baz
}
var myVar:myEnum = .foo


if myVar == .foo || myVar == .bar {

}

我想知道是否有更简单的是在没有开关的情况下编写if条件(如果我需要与其他条件链接)?

2 个答案:

答案 0 :(得分:4)

如果您的目标是简洁的代码和可读性,并且您不关心潜在的效率问题/未来的调整范围,那么您可以:

if [ .foo, .bar ].contains(myVar) {

答案 1 :(得分:2)

如果您要将大量案例与以下内容进行比较,则可以使用aws_ses_newsletters

contains

用法:

enum MyEnum {
    case Foo, Bar, Baz, Qux   // and many more

    func isAmong(conditions: [MyEnum]) -> Bool {
        return conditions.contains(self)
    }   
}