十二、算數、以及聚合操作(Mathematical and Aggregate Operators)
1,toArray
(1)基本介紹
- 該操作符先把一個序列轉成一個數組,并作為一個單一的事件發送,然后結束。
(2)使用樣例
let disposeBag = DisposeBag()
Observable.of(1, 2, 3)
.toArray()
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
運行結果如下:
2,reduce
(1)基本介紹
-
reduce
接受一個初始值,和一個操作符號。 -
reduce
將給定的初始值,與序列里的每個值進行累計運算。得到一個最終結果,并將其作為單個值發送出去。
(2)使用樣例
let disposeBag = DisposeBag()
Observable.of(1, 2, 3, 4, 5)
.reduce(0, accumulator: +)
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
運行結果如下:
3,concat
(1)基本介紹
-
concat
會把多個Observable
序列合并(串聯)為一個Observable
序列。 - 并且只有當前面一個
Observable
序列發出了completed
事件,才會開始發送下一個Observable
序列事件。
(2)使用樣例
let disposeBag = DisposeBag()
let subject1 = BehaviorSubject(value: 1)
let subject2 = BehaviorSubject(value: 2)
let variable = Variable(subject1)
variable.asObservable()
.concat()
.subscribe(onNext: { print($0) })
.disposed(by: disposeBag)
subject2.onNext(2)
subject1.onNext(1)
subject1.onNext(1)
subject1.onCompleted()
variable.value = subject2
subject2.onNext(2)
運行結果如下: