Предположим, у меня есть Set
настраиваемых объектов (например, Person), примерно так:
struct Person: Hashable {
let name: String
let age: Int
}
let persons: Set<Person> = [Person(name: "Willy", age: 25), Person(name: "Jenny", age: 22)]
Если бы мне пришлось удалить все элементы с указанным c именем, я бы не смог найдите метод Set
для этого случая. В Array
есть такой метод, который называется:
@inlinable public mutating func removeAll(where shouldBeRemoved: (Element) throws -> Bool) rethrows
Но по какой-то причине я не могу найти эквивалент в Set
.
Итак, моим решением было выполнить быстрое преобразование для удаление происходит примерно так:
var arr = Array(persons)
arr.removeAll {
$0.name == "Willy"
}
persons = Set(arr)
Есть ли какое-либо прямое решение в Set
вместо использования Array
в качестве посредника?