prepend

값 하나를 먼저 내보낸 다음, 원본의 모든 값을 내보냅니다.

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

강의

prependappend를 뒤집은 것입니다. 먼저 a를 내보내고, 그다음부터는 원본으로 넘어갑니다. 실제로 값을 끌어당기기 전까지 원본은 손대지 않으므로, 원본이 아무리 크거나 계산 비용이 크더라도 앞에 붙이는 비용은 저렴합니다 — 복사도, 인덱스를 밀어내는 작업도 없이 그저 값 하나가 앞에 더해질 뿐입니다.

prependAsyncaFuture도 받습니다. 이 값은 첫 번째로 값을 끌어오는 시점에, 실제 원본에 닿기 전에 먼저 await 됩니다.

데모 1 · 기본

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

직접 해 보기

연습: steps 맨 앞에 'mix'를 붙여 보세요.

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