如何在Swift中在单行中进行模式匹配枚举?

如何在Swift中在单行中进行模式匹配枚举?,swift,Swift,在Swift中,如果我有一个枚举: enum MyEnum { case foo(FooType) case bar(BarType) } 我可以使用开关 switch enumValue { case .foo(let fooValue): // ... use fooValue case .bar(let barValue): // ... } …或case let if case let .foo(fooValue) = enumValue {

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

enum MyEnum {
    case foo(FooType)
    case bar(BarType)
}
我可以使用
开关

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