分割・バッファリング
複数の要素をまとめて配列やタプルとして発行するオペレーター群です。
オペレーター一覧
| オペレーター | 概要 | 主なトリガー |
|---|---|---|
| Chunk | 要素をバッファリングし、配列 T[] として発行する | 個数・時間・境界 Observable・非同期タスク |
| ChunkFrame | フレーム単位で要素をバッファリングし、配列 T[] として発行する | フレーム数(+個数上限) |
| ChunkUntil | 述語が true を返すまで要素をバッファリングし、配列 T[] として発行する | 述語の戻り値 |
| Pairwise | 隣接する 2 要素をタプル (T, T) として発行する | 要素が 2 つ揃うたび |
使い分けガイド
固定サイズでまとめたい
- Chunk(count) — 要素数が一定数に達するたびに発行。
- Chunk(count, skip) — スライディングウィンドウ(重複・ギャップ対応)。
時間でまとめたい
- Chunk(timeSpan) — 一定時間ごとに発行。
- Chunk(timeSpan, count) — 時間または個数の どちらか先 に到達した時点で発行。
- ChunkFrame — ゲームループなどフレーム単位で発行。
外部イベントでまとめたい
- Chunk(windowBoundaries) — 別の Observable が発火するたびに発行。
- Chunk(asyncWindow) — 非同期タスクが完了するたびに発行。
条件でまとめたい
- ChunkUntil — 述語が
trueを返した要素でチャンクを区切る。
隣接ペアが欲しい
- Pairwise — 前回値と今回値のタプルを発行。差分計算などに便利。