簡體   English   中英

Swift Combine:沒有“distinct”運算符?

[英]Swift Combine: no `distinct` operator?

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

誰能幫我建一個? :)

.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)) {
            $0.0.contains($1) ? ($0.0, nil) : ($0.0 + [$1], $1)
        }
        .compactMap { $0.1 }
        .eraseToAnyPublisher()
    }
}

嗯,我真傻,有一個叫做RemoveDuplicates ,它鏈接到方法removeDuplicates()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM