如果逻辑OR的情况,则为Swift

时间:2018-02-19 16:50:46

标签: swift

说我们有一个枚举:

enum MyEnum {
  case foo(Int)
  case bar
}

我们可以这样做:

func myFunc(_ foo: MyEnum, _ bar: MyEnum) {
  if case .foo(_) = foo, case .bar = bar {...}
}

但如果我需要这样的话

if case .foo(_) = foo, case .bar = bar OR someVar == true {...}

我希望case .foo(_) = foo, case .bar = bar为真,或someVar为真。

显然我不能把||放在那里,我无法找到替代方案。我错过了一些简单的东西吗?

1 个答案:

答案 0 :(得分:2)

我不确定使用单个if语句是否可行。但是,您可以使用如下的switch语句:

enum MyEnum {
    case foo(Int)
    case bar
}

func myFunc(_ foo: MyEnum, _ bar: MyEnum, _ someVar: Bool) {
    switch (foo, bar, someVar) {
    case (.foo, .bar, _), (_, _, true):
        break
    default:
        break
    }
}