append

원본의 모든 값을 내보낸 다음, 마지막에 값 하나를 더 내보냅니다.

Iterable<A> append<A>(A a, Iterable<A> iterable) FxAsyncIterable<A> appendAsync<A>(FutureOr<A> a, FxAsyncIterable<A> iterable) Fx<T> Fx.append(T a) // chain FxAsync<T> FxAsync.append(FutureOr<T> a)

강의

append는 아무것도 미리 만들어 두지 않고 지연 시퀀스 뒤에 값 하나를 붙이는 가장 단순한 방법입니다. 원본을 그대로 흘려보내다가 원본이 소진되면 a를 한 번 내보낼 뿐입니다. 원본은 값을 끌어당길 때만 소비되므로, 계산 비용이 큰 원본이어도 문제없이 동작합니다 — 추가된 값은 실제로 가장 마지막에 생성됩니다.

비동기 쪽에서는 a 자체가 Future일 수 있습니다. appendAsync는 상류가 끝난 뒤에야 이를 await 하므로, 느린 "마무리" 값 때문에 앞단이 미리 붙잡히는 일이 없습니다.

데모 1 · 기본

데모 2 · 비동기, future 값과 함께

직접 해 보기

연습: steps 끝에 'cool'을 덧붙여 보세요.

관련 항목: prepend — 대신 앞쪽에 값을 추가 · concat — 두 이터러블 전체를 이어 붙임 · reverse