変換オペレーター
上流の値を別の値や別の形へ変換するオペレーターです。元の Observable の要素数や通知タイミングを変えずに、値そのものを加工する用途が中心です。
API 一覧
| オペレーター | 概要 |
|---|---|
| Select | 各値に関数を適用して変換する |
| SelectAwait | 各値に非同期関数を適用して変換する |
| SelectMany | 各値から Observable を生成し、すべてをフラットに合流する |
| Scan | アキュムレータを使って値を累積しながら変換する |
| Cast | 各値を指定した型へキャストする |
| OfType | 指定した型に一致する値だけを通す |
| AsUnitObservable | 値を捨てて Unit に変換する |
| Materialize / Dematerialize | 通知を Notification<T> に包む / 展開する |
用途別の選び方
- 同期的に値を変換したい → Select
- 非同期的に値を変換したい → SelectAwait
- 値から複数の要素を展開したい → SelectMany
- 前の値に依存する計算をしたい → Scan
- 型を変換・フィルタしたい → Cast、OfType
- 値の中身に興味がなくイベント発生だけ知りたい → AsUnitObservable
- 通知の種類を Observable として扱いたい → Materialize / Dematerialize