Swift 组合:没有 `distinct` 运算符?

Swift Combine: no `distinct` operator?

Combine(随 Xcode 11 beta 7 一起提供)似乎缺少 distinct 运算符?

谁能帮我建一个? :)

我真傻,有一个叫RemoveDuplicates, and link to method removeDuplicates()

.removeDuplicates() 等价于 .distinctUntilChanged()

您可以执行以下操作以获得 .distinct().

@available(OSX 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *)
extension Publisher where Self.Output : Equatable {
    public func distinct() -> AnyPublisher<Self.Output, Self.Failure> {
        self.scan(([], nil)) {
            [=10=].0.contains() ? ([=10=].0, nil) : ([=10=].0 + [], )
        }
        .compactMap { [=10=].1 }
        .eraseToAnyPublisher()
    }
}