skipWhile
술어가 true를 반환하는 동안 값을 건너뛰고, 그 뒤로는 술어에 맞든 아니든 모두 내보냅니다.
Iterable<A> skipWhile<A>(bool Function(A a) f, Iterable<A> iterable)
FxAsyncIterable<A> skipWhileAsync<A>(FutureOr<bool> Function(A a) f, FxAsyncIterable<A> iterable)
Fx<T> Fx.skipWhile(bool Function(T a) f) // chain
FxAsync<T> FxAsync.skipWhile(FutureOr<bool> Function(T a) f)
Iterable<A> dropWhile<A>(...) // FxTS alias
강의
skipWhile은 takeWhile을 뒤집은 함수입니다.
술어가 참인 동안은 원소를 건너뛰다가, 술어가 거짓이 되는 원소를 만나는
순간부터 "전부 내보내기" 모드로 완전히 전환합니다. 이 전환은 되돌릴 수
없습니다. skipWhile이 한 번 값을 흘려보내기 시작하면,
뒤에 술어에 맞는 원소가 다시 나오더라도 다시 버리지 않습니다.
개수를 미리 셀 수 없는 가변 길이의 앞부분을 잘라낼 때 꺼내 쓰세요.
공백처럼 앞에 붙는 토큰, 헤더 행, 지표 스트림의 예열 구간 같은
경우입니다. skipWhile은 Iterable.skipWhile과
이름을 맞춘 Dart다운 이름이고, fxdart는 FxTS식 표기인
dropWhile도 함께 받습니다 — 같은 연산자입니다.
데모 1 · 기본
3에서 버리기가 멈춘 뒤로는 술어에 맞는 값
(끝에 있는 2)도 다시 버려지지 않고 그대로 남습니다:
데모 2 · 비동기
직접 해 보기
연습: 온도가 25 미만인 동안은 버리고, 그 뒤로는 모두 남겨 보세요.