本文主要是介绍RxSwift基本使用(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
RxSwift基本使用(二)
变换操作
map flatMap
map、flatMap用于把流内容映射成新的内容,但flatMap用于其内容还是流事件
Observable.of(1,2,3).map { (num) -> Int innum + 10}.subscribe(onNext: {print($0)}).addDisposableTo(bag)/**111213**/let bs1 = BehaviorSubject(value: "A")let bs2 = BehaviorSubject(value: "B")let variable = Variable(bs1)variable.asObservable().flatMap({$0}).subscribe(onNext: {print($0)}).addDisposableTo(bag)variable.value = bs2/**AB*///如果把上面flatMap换成map,结果如下/**let variable = Variable(bs1)variable.asObservable().map({$0}).subscribe(onNext: {print($0)}).addDisposableTo(bag)variable.value = bs2//RxSwift.BehaviorSubject<Swift.String>//RxSwift.BehaviorSubject<Swift.String>**/
scan
scan就是给一个初始化的数,然后不断的拿前一个结果和最新的值进行处理操作。
Observable.of(10, 100, 1000).scan(10) { aggregateValue, newValue in/**aggregateValue:10 newValue:10aggregateValue:20 newValue:100aggregateValue:120 newValue:1000*/aggregateValue + newValue}.subscribe(onNext: { print($0) }).addDisposableTo(bag)/**201201120*/
过滤和约束
filter
根据自身需求过滤掉一些不用的值
Observable.of(10,20,5,9,12,8,6,28).filter { (num) ->
这篇关于RxSwift基本使用(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!