Rxjava的學習之變換操作符 scan

2021-07-30 02:04:15 字數 1518 閱讀 7261

連續地對資料序列的每一項應用乙個函式,然後連續發射結果

scan操作符對原始observable發射的第一項資料應用乙個函式,然後將那個函式的結果作為自己的第一項資料發射。它將函式的結果同第二項資料一起填充給這個函式來產生它自己的第二項資料。它持續進行這個過程來產生剩餘的資料序列。這個操作符在某些情況下被叫做accumulator。

});使用lambda表示式簡化:

observable.just(1,2,3,4,5)

.scan((sum, item) ->

sum+item)

.subscribe(item ->

log.d("tag","scan:"

+item));

執行結果:

scan: 1

scan: 3

scan: 6

scan: 10

scan: 15

r引數的意思是將其當做乙個基值,讓後續的值去累加計算。

有乙個scan操作符的變體,你可以傳遞乙個種子值給累加器函式的第一次呼叫(observable發射的第一項資料)。如果你使用這個版本,scan將發射種子值作為自己的第一項資料。注意:傳遞null作為種子值與不傳遞是不同的,null種子值是合法的。

這個操作符預設不在任何特定的排程器上執行。

});使用lambda表示式簡化:

observable.just(1,2,3,4,5)

.scan(10, (sum, item) ->

sum+item)

.subscribe(item ->

log.d("tag","scan:"

+item));

執行結果:

scan: 11

scan: 13

scan: 16

scan: 20

scan: 25

RxJava操作符學習

操作符學習推薦閱讀 官方英文 翻譯中文 先來看乙個簡單的例子 被觀察者 observable.onsubscribeintegeronsubscribe new observable.onsubscribe 觀察者 subscriberintegersubscriber new subscriber...

RxJava筆記 RxJava操作符

用來建立observable。public static observablecreate onsubscribef 把其他型別的物件和資料型別轉化成observable。observable.just 123 把其他型別的物件和資料型別轉化成observable。與just區別在與引數返回值不同 ...

RxJava常用操作符

用於建立observable 被觀察者 的操作符 用於對observable發出的資料進行變換的操作符 用於從observable發射的資料中選擇性的過濾一些資料的操作符 用於將多個observable組合成乙個單一的observable的操作符 有助於從observable的錯誤通知中恢復的操作符...