作用
掃描顶掉,遍歷梗夸,用法和上一個Reduce
操作符差不多羞迷,只是這個操作符會將每一個過程的中間產(chǎn)物發(fā)射出來减宣,而不是只發(fā)射結(jié)果
示例用法
這里舉個例子,做一下累加計算
Observable.just(1, 2, 3, 4,5)//創(chuàng)建了一個有5個數(shù)字的被觀察者
.scan(new BiFunction<Integer, Integer, Integer>() {
@Override
public Integer apply(Integer t1, Integer t2) {
return t1 + t2;//累加操作玩荠,如果是-就是累減操作漆腌。。依此類推
}
})
.subscribe(getObserver())//這里的觀察者依然不重要
這里前兩個數(shù)計算的結(jié)果會作為第二個計算的t1
傳進(jìn)來阶冈,直到處理完最后一次計算
運(yùn)行結(jié)果
1,3,6,10,15
分析
我們的被觀察者中有5個數(shù)闷尿,分別是1,2,3,4,5
scan的過程:
第一個參數(shù)1不夠兩個,直接發(fā)射結(jié)果1女坑;
之后:
t1 = 1填具;t2 = 2
計算:t1 + t2 = 3,發(fā)射結(jié)果3匆骗;
t1 = 3劳景;t2 = 3;
計算: t1 + t2 = 6碉就,發(fā)射結(jié)果6盟广;
t1 = 6;t2 = 4瓮钥;
計算 :t1 + t2 = 10筋量,發(fā)射結(jié)果10烹吵;
t1 = 10;t2 = 5桨武;
計算 :t1 + t2 = 15肋拔,發(fā)射結(jié)果15;
結(jié)束
總結(jié)
這個系列只有干貨呀酸,如果大家有什么好的建議的話歡迎在下面評論凉蜂。或者覺得我哪里寫的不夠形象了七咧,同樣可以提出來跃惫。