2016-10-05 58 views

回答

4
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))} 
    } 
} 
相关问题