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()
}
}
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()
}
}