如何在Swift中在单行中进行模式匹配枚举?
在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 {
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