我给你做了一个简单的例子,说明如何在你的上下文中使用 enum 和过滤器函数。
enum Foo {
case article(data: [Int])
case link(data: [String])
case `none`
static func myfilter(array: [Foo]) -> [Foo]{
var newArray:[Foo] = []
for element in array {
switch element {
case .article(let article):
newArray.append(.article(data: article))
case .link(let link):
newArray.append(.link(data: link))
case .none:
break
}
}
return newArray
}
}
let foo: [Foo] = [.article(data: [1,2,3]), .link(data: ["hello", "world"]), .none]
print(Foo.myfilter(array: foo))
我制作了一个可以编译和测试的代码,你必须更改Foo
,article
和link
.
当你想使用枚举时,你必须使用switch case
.
如果你绝对想在 swift 中使用过滤器,你可以,但你需要实现协议序列,在这种情况下更复杂。
对于枚举的每个案例,您必须管理一个使用模式匹配概念的案例。它非常强大。