前言
本篇文章将要学习RxSwift
中数学和集合操作符,在RxSwift
中包括了:
toArray
reduce
concat
toArray
将一个Observable
序列转化为一个数组,并转换为一个新的Observable
序列发射,然后结束。
let disposeBag = DisposeBag()
Observable.of(1,2,3,4,5).toArray().subscribe(onNext: {print($0)}).disposed(by: disposeBag)
运行结果:
[1, 2, 3, 4, 5]
reduce
使用一个初始值和一个操作符,对Observable
序列中的所有元素进行累计操作,并转换成单一事件信号。(PS:和map
有的区别就是:map
针对单个元素进行操作,reduce
针对所有元素累计操作)
let disposeBag = DisposeBag()
Observable.of(1,10,100).reduce(1, accumulator: +).subscribe(onNext: {print($0)}).addDisposableTo(disposeBag)
运行结果:
112
concat
将两个Observable
序列合并成一个Observable
序列,当一个Observable
序列中的所有元素成功发射完成之后,才会发射另一个Observable
序列中的元素。
在第一个Observable
发射完成之前,第二个Observable
发射的事件都会被忽略,但会接收第一个Observable
发射完成前第二个Observable
发射的最后一个事件。
不好理解,举个例子:
let disposeBag = DisposeBag()
let subject1 = BehaviorSubject(value: "