dart Steamクラスのfold()メソッドについてメモ書き。
fold()はStreamイベントの前要素と次要素を繰り返し結合するメソッド。
fold()は第1引数で初期値を設定し、第2引数で結合処理用のcombine関数を実装する。
combine関数は第1引数で前要素を受け取り、第2引数で次要素を受け取る。
fold()メソッドはStreamイベントからdone(完了イベント)を受け取るとFuture型の戻り値を返す。対象のStreamイベントが空の場合は初期値を返す。
それではコーディングで動作確認。
初期値として100を設定する。
void main() async {
final listTest = Stream.fromIterable([1, 2, 3, 4, 5]);
final fd =
await listTest.fold(100, (previous, element) => previous + element);
print(fd);
}
実行結果。
「100+1+2+3+4+5=115」が返る。
115
コメント