如何在Swift的单行中匹配枚举枚举?

时间:2017-01-24 22:18:38

标签: swift

在Swift中,如果我有一个枚举:

enum MyEnum {
    case foo(FooType)
    case bar(BarType)
}

我可以与switch

进行模式匹配
switch enumValue {
case .foo(let fooValue):
    // ... use fooValue
case .bar(let barValue):
    // ...
}

...或case let

if case let .foo(fooValue) = enumValue {
    // ... use fooValue
}

问题:是否可以在一个表达式中匹配,以检查它是否为.foo(FooType)类型,以生成可选的FooType?

等效的多行版本是:

var x: FooType?
if case let .foo(fooValue) = enumValue {
    x = fooValue
}

的影响
let .foo(x) = enumValue or nil

其中fooValue绑定到FooType?值或nil如果它不是.foo

0 个答案:

没有答案