我有一个enum
一些case
,以及与此enum
的实例的阵列,例如:如何获得一行中的枚举的情况?
enum MyEnum {
case foo(Int)
case bar(Int)
case baz(Int)
}
let myArray = [
MyEnum.foo(1),
MyEnum.bar(2),
MyEnum.baz(3)
]
然后,我需要比较,如果该数组的确定的元件如果foo
,baz
或baz
,例如:
myArray.filter { $0 == .foo } // not work, and should need return [MyEnum.foo(1)]
我可以使用switch
:
myArray.filter {
switch $0 {
case .foo(_):
return true
default:
return false
}
} // work, and return [MyEnum.foo(1)]
但是,我想要一个解决方案少冗长,并了解更多关于enum
。
'if case .foo = $ 0 ...'works。 – vacawama
@vacawama啊是的,你是对的。 3个字符短 –
'let result = myArray.filter {if case .foo = $ 0 {return true};返回false}' – vacawama