【Swift】RxSwift勉強してみたPart7


はじめに

前回
今回はOptionalな値が流れるストリームに対してさまざまなことをできるようにする拡張ライブラリーであるRxOptionalをみていこうかと思います。

RxOptional

filterNil()

nilをはじいてくれるオペレーター

Observable<String?>
    .of("100", nil, "200")
    .filterNil() //Observable<String?> -> Observable<String>
    .subscribe { print($0) }
//100
//200

replaceNilWith()

nilを置き換えることができるオペレーター

Observable<String?>
    .of("100", nil, "200")
    .replaceNilWith("300")
    .subscribe { print($0) }
//100
//300
//200

errorOnNil()

nilが検出されたときにエラーをながすオペレーター

Observable<String?>
    .of("100", nil, "200")
    .errorOnNil()
    .subscribe { print($0) }
//100
//Found nil while trying to unwrap type<Optional<String>>

filterEmpty()

空の配列や辞書をはじいてくれるオペレーター

Observable<[String]>
    .of(["1"], [], ["2", "3"])
    .filterEmpty()
    .subscribe { print($0) }
//["1"]
//["2", "3"]

おわりに

次回
RxSwiftって拡張ライブラリーたくさんありますね!