我如何在 Android 上用 Rx 累积 Observable 的每 2 个发射值?
How can I accumulate each 2 emitted values of Observable with Rx on Android?
我有一个 Observable,每秒发出 0 到 10 的值。我需要累加每两个值并在完成时打印累加器值的结果。
完成!我使用 buffer(4) 方法获取列表中的 4 个值中的每一个,并从中保存前两个值以累积我的计数器:)
您可以使用 reduce
运算符。这是科特林的例子:
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
我有一个 Observable,每秒发出 0 到 10 的值。我需要累加每两个值并在完成时打印累加器值的结果。
完成!我使用 buffer(4) 方法获取列表中的 4 个值中的每一个,并从中保存前两个值以累积我的计数器:)
您可以使用 reduce
运算符。这是科特林的例子:
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