在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
。