3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RxSwiftのメソッドチェーン

Posted at

はじめに

初めまして!
タップルでRxSwift武者修行中のせーたろです。

RxSwiftを書き始めてから知ったメソッドチェーンの備忘録兼メモです。

メソッドチェーンとは

メソッドを組み合わせた書き方をすることによって、関数型プログラミングの副作用を避ける方法を取り入れたプログラミングをし、より読みやすく宣言的なコードを書いています。
宣言的なコーディングを実現するため、メソッドチェ-ンによる処理の記述が基本であり重要です。

map と subscribe による例

// 入力されたInt型の値を2倍する
_ = Observable.just(10) 
.map { $0 * 2 } 
.subscribe(onNext: { print($0) // => 20 
})

型が同じ限り一生.mapとかの処理をつなげられるけど、
この場合.subscribeしたら型が変わるのでdisposeBagして終了

(多分このつなげて書くやつをつよつよの人は"比較的宣言的な書き方"と言ってるっぽいです)

そして、mapのクロージャの戻り値を Int → Stringにすると
購読できるイベントもInt → Stringになります。
map に使われているクロージャの戻り値によって購読できる型が変わるということです

RxSwiftのオペレータはジェネリクスを使ったインタフェースを定義することで、メソッドチェ-ンを実現しています。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?