Swift标准库中是否有一个函数可以对集合进行操作,采用谓词并返回从该集合中删除的值?
目前,我必须分两步实现:
guard let idx = allAnnotations.index(where: {$0 is MKUserLocation}) else {return}
let userLocation = allAnnotations.remove(at: idx) as! MKUserLocation
但是我猜想,存在类似的功能。
目标
我有以下数组:
[Type1, Type1, Type1, Type1, Type1, Type1, Type2]
Type2
可能会或可能不会出现在数组中。除了这两种以外,没有其他类型。我需要将其分为两个元素:
[Type1, Type1, Type1, Type1, Type1, Type1]
和
Type2?
那就是我要寻找的功能。
最佳答案
Swift 5具有removeAll(where)
@inlinable public mutating func removeAll(where shouldBeRemoved: (Element) throws -> Bool) rethrows
您可以像这样使用它-
[1,2,3].removeAll(where: { $0 == 2})
Apple Docs
关于arrays - 删除(其中: {}) remove(where: {}) function in Swift?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50171200/