-1
Ruby有数组一个非常优雅的reject
功能:Swift在Ruby中是否有像`array.reject`这样的函数?
arr = [1, 2, 3, 4, 5, 6]
arr.reject { |a| a < 3 } #=> [3, 4, 5, 6]
我知道SWIFT有filter
功能。我想知道斯威夫特是否有类似reject
。
Ruby有数组一个非常优雅的reject
功能:Swift在Ruby中是否有像`array.reject`这样的函数?
arr = [1, 2, 3, 4, 5, 6]
arr.reject { |a| a < 3 } #=> [3, 4, 5, 6]
我知道SWIFT有filter
功能。我想知道斯威夫特是否有类似reject
。
extension Array {
func reject(_ isRejected: (Element) -> Bool) -> [Element] {
return self.filter{ !isRejected($0) }
}
}
现在确实如此。
更妙的是,你可以推广到任何Sequence
,甚至处理投掷断言:
extension Sequence {
func reject(_ isRejected: (Self.Iterator.Element) throws -> Bool) rethrows -> [Self.Iterator.Element] {
return try self.filter{ !(try isRejected($0))}
}
}
似乎很少获得对'arr.filter {!(rejectConditional)}' – BaseZen