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
コメント