去重
示例:移除所有重复的值
import Combine
let numbers = [1, 2, 2, 3, 1, 4, 3, 5, 4, 6].publisher
let uniqueValuesSubscription = numbers
.scan(into: Set<Int>()) { seenValues, newValue in
seenValues.insert(newValue) // 使用集合追踪已处理的值
}
.filter { seenValues, newValue in
seenValues.insert(newValue).inserted // 如果新值是集合中未出现过的,则保留
}
.map { $0 } // 只保留唯一的值
.sink { value in
print(value) // 输出: 1, 2, 3, 4, 5, 6
}简化示例
Last updated