StreamクラスskipWhile()メソッド

Dar言語StreamクラスtoSet()メソッドDart

StreamクラスのskipWhile()メソッドについてメモ書き。

skipWhile()は条件にマッチする間は処理をスキップするメソッド。
条件は引数のtest関数に記述する。test関数の戻り値はbool型で、条件がtrueの間はスキップし、falseになったところからStreamデータが返される。
skipWhile()の戻り値はStream<T>型。skipWhile()が受け取ったStreamデータは、エラー、doneイベント、ブロードキャスト含めそのまま返る。

それではコーディングで動作確認。
test関数では「Streamデータに”apple”を含む文字列」を条件にしている。

void main() {
  final stream = Stream.fromIterable(
      ["apple", "pineapple", "orange", "banana", "pineapple"]);
  stream.skipWhile((element) => element.contains("apple")).listen(print);
}

実行結果。
末尾の”pineapple”は”apple”を含むが、”orange”のタイミングでtest関数がfalseを返すのでスキップ対象にはならない。

orange
banana
pineapple

コメント

タイトルとURLをコピーしました