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/

10-13 09:49