takeUntilInclusive
술어가 참이 될 때까지 값을 내보냅니다 — 조건에 맞은 원소도 포함됩니다.
Iterable<A> takeUntilInclusive<A>(bool Function(A a) f, Iterable<A> iterable)
FxAsyncIterable<A> takeUntilInclusiveAsync<A>(FutureOr<bool> Function(A a) f, FxAsyncIterable<A> iterable)
Fx<T> Fx.takeUntilInclusive(bool Function(T a) f) // chain
FxAsync<T> FxAsync.takeUntilInclusive(FutureOr<bool> Function(T a) f)
강의
takeUntilInclusive는 takeWhile과 아주 가까운
사촌이지만, 의도된 차이가 하나 있습니다. 술어를 참으로 만든 원소까지
내보낸 뒤에 멈춘다는 점입니다. takeWhile은 조건을
만족하지 못한 원소 앞에서 멈추고,
takeUntilInclusive는 조건에 맞은 원소 뒤에서
멈춥니다. 조건에 맞은 원소 자체가 답의 일부일 때 쓰면 됩니다 —
"첫 에러까지 포함해서 로그를 읽는다", "종료 표시까지 포함해서 단계를
모은다" 같은 경우입니다.
FxTS에서는 원래 이름이 takeUntil이었습니다. FxDart는
FxTS와의 대응을 위해 takeUntil(그리고
takeUntilAsync)을 @Deprecated 별칭으로
남겨 두었지만, 새로 작성하는 코드는
takeUntilInclusive를 바로 호출하세요.
데모 1 · 기본
데모 2 · 비동기
직접 해 보기
연습: 처음 나오는 'ERROR'까지 포함해서 로그 줄을
가져와 보세요.