【发布时间】:2018-07-01 11:20:36
【问题描述】:
我有一个 observable 每秒发出 0 到 10 的值。我需要累加每两个值并打印累加器值的结果并完成。
【问题讨论】:
标签: android rx-java observable rx-android accumulate
我有一个 observable 每秒发出 0 到 10 的值。我需要累加每两个值并打印累加器值的结果并完成。
【问题讨论】:
标签: android rx-java observable rx-android accumulate
完成!我使用 buffer(4) 方法获取列表中的 4 个值中的每一个,并从中保存前两个值以累积我的计数器 :)
【讨论】:
您可以使用reduce 运算符。这是 kotlin 示例:
Observable.just(1,2,3)
.reduce { t1: Int, t2: Int -> t1+t2}
.subscribe { print(it) } // prints only sum
【讨论】:
scan 运算符应该满足您的要求。
Observable.from(1,2,3,4,5)
.scan { t1, t2 -> t1 + t2 }
.subscribe() // 1, 3, 6, 10, 15
【讨论】: