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)

강의

takeUntilInclusivetakeWhile과 아주 가까운 사촌이지만, 의도된 차이가 하나 있습니다. 술어를 참으로 만든 원소까지 내보낸 뒤에 멈춘다는 점입니다. takeWhile은 조건을 만족하지 못한 원소 앞에서 멈추고, takeUntilInclusive는 조건에 맞은 원소 뒤에서 멈춥니다. 조건에 맞은 원소 자체가 답의 일부일 때 쓰면 됩니다 — "첫 에러까지 포함해서 로그를 읽는다", "종료 표시까지 포함해서 단계를 모은다" 같은 경우입니다.

FxTS에서는 원래 이름이 takeUntil이었습니다. FxDart는 FxTS와의 대응을 위해 takeUntil(그리고 takeUntilAsync)을 @Deprecated 별칭으로 남겨 두었지만, 새로 작성하는 코드는 takeUntilInclusive를 바로 호출하세요.

데모 1 · 기본

데모 2 · 비동기

직접 해 보기

연습: 처음 나오는 'ERROR'까지 포함해서 로그 줄을 가져와 보세요.

관련 항목: takeWhile — 조건에 맞은 원소 앞에서 멈추며, 그 원소는 제외합니다 · dropUntil — drop 쪽 대응 함수 · take — 개수로 가져오기