Swift - RxSwift的使用詳解12(算數&聚合操作符:toArray、reduce、concat)

十二、算數、以及聚合操作(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)

運行結果如下:

RxSwift使用詳解系列
原文出自:www.hangge.com轉載請保留原文鏈接

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容