takeLast
소스에서 뒤의 length개 값을 담은 지연 이터러블을 반환합니다.
Iterable<A> takeLast<A>(int length, Iterable<A> iterable)
FxAsyncIterable<A> takeLastAsync<A>(int length, FxAsyncIterable<A> iterable)
Fx<T> Fx.takeLast(int count) // chain
FxAsync<T> FxAsync.takeLast(int count)
Iterable<A> takeRight<A>(...) // FxTS alias
강의
takeLast는 take를 거울에 비친 함수입니다.
앞의 length개가 아니라 뒤쪽 값을 돌려줍니다. 다만 한 가지
함정이 있습니다 — "뒤쪽" 값이 무엇인지 알려면 takeLast는
먼저 모든 원소를 봐야 합니다. 값을 하나라도 내보내기 전에 소스 전체를
리스트로 구체화하기 때문에, 대부분의 FxDart 연산자와
달리 무한 시퀀스에서는 동작하지 않습니다. takeLast가
Dart다운 이름이고, fxdart는 FxTS식 표기인 takeRight도
함께 받습니다 — 같은 연산자입니다.
비동기 버전에도 같은 제약이 있습니다. takeLastAsync는
꼬리 부분을 돌려주기 전에 상류 전체를 (모든 원소를 await 하며)
소진합니다. 소스가 유한하고 버퍼링해도 될 만큼 작다는 것을 알 때에만
쓰세요.
데모 1 · 기본
데모 2 · 비동기 (소스 전체를 먼저 버퍼링해야 합니다)
직접 해 보기
연습: 마지막 점수 3개만 남겨 보세요.