-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