当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Optional.Publisher scan(_:_:)用法及代码示例


实例方法

scan(_:_:)

通过将当前元素与闭包返回的最后一个值一起提供给闭包来转换来自上游发布者的元素。

声明

func scan<T>(
    _ initialResult: T,
    _ nextPartialResult: @escaping (T, Self.Output) -> T
) -> Publishers.Scan<Self, T>

返回值

一个发布者,它通过应用一个闭包来转换元素,该闭包接收其先前的返回值和来自上游发布者的下一个元素。

参数

initialResult

nextPartialResult 闭包返回的先前结果。

nextPartialResult

一个闭包,它将闭包返回的前一个值和上游发布者发出的下一个元素作为其参数。

详述

使用 Publisher/scan(_:_:) 将所有 previously-published 值累积为单个值,然后将其与每个 newly-published 值组合。

以下示例记录从序列发布者接收到的所有值的运行总计。


let range = (0...5)
cancellable = range.publisher
    .scan(0) { return $0 + $1 }
    .sink { print ("\($0)", terminator: " ") }
 // Prints: "0 1 3 6 10 15 ".

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional.Publisher scan(_:_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。