我正在嘗試遍歷一組Users,并將它們從另一組中洗掉LostFollowers(如果它們存在)。Users可以通過 來識別id。
struct LostFollower {
let user: User
let dateLost: Date
}
let users1: Set<LostFollower> = // …
let users2: Set<User> = // …
users2.forEach { user in
// Need to remove anyone in the set users1, whose `user` property is equal to user
}
我怎樣才能做到這一點?我需要使用filter還是有更好的方法來做到這一點?
注:設定操作將無法作業,因為users1和users2有不同的型別。
uj5u.com熱心網友回復:
如果我正確理解了這個問題,您將嘗試從 users1(一組 LostFollowers)中洗掉元素(如果它們存在于 users2 中)。我認為你可以做這樣的事情
let filteredUser = users1.filter { follower in
!users2.contains(follower.user)
}
uj5u.com熱心網友回復:
我同意@sushitrash。如果您已正確說明問題,那么問題很簡單:
struct User: Hashable {
}
struct LostFollower: Hashable {
let user: User
let dateLost: Date
}
var users1: Set<LostFollower> = // ...
let users2: Set<User> = // ...
users1 = users1.filter {!users2.contains($0.user)}
請注意,這是有效的,因為 Setfilter是有效的。
如果這不正確,那么您沒有正確描述問題,您需要重申您正在嘗試做的事情。
uj5u.com熱心網友回復:
let filtered = users2.subtracting(users1.map { $0.user })
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/395136.html
