枚举带过滤器的枚举数组

时间:2017-05-31 11:06:33

标签: swift enums

是否可以枚举包含值的Enum案例数组,同时在同一行中过滤它们?

现在我正在做

let modes = [FilterMode]()
for mode in modes {
    if case .categories(let data) = mode {}
}

我想做的事情是这样的

for mode in modes where case .categories(let data) = mode {}

或类似的东西。目前在Swift 3中可以实现吗?

1 个答案:

答案 0 :(得分:3)

您不能在where子句中使用模式匹配,但您可以 使用for case模式(自Swift 2起):

for case .categories(let data) in modes {
    // ... use `data` ...
}

这也可以写成

for case let .categories(data) in modes { ... }