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)
강의
prepend는 append를 뒤집은 것입니다. 먼저
a를 내보내고, 그다음부터는 원본으로 넘어갑니다. 실제로 값을
끌어당기기 전까지 원본은 손대지 않으므로, 원본이 아무리 크거나 계산
비용이 크더라도 앞에 붙이는 비용은 저렴합니다 — 복사도, 인덱스를 밀어내는
작업도 없이 그저 값 하나가 앞에 더해질 뿐입니다.
prependAsync는 a로 Future도 받습니다.
이 값은 첫 번째로 값을 끌어오는 시점에, 실제 원본에 닿기 전에 먼저 await 됩니다.
데모 1 · 기본
데모 2 · 비동기, future 값과 함께
직접 해 보기
연습: steps 맨 앞에 'mix'를 붙여 보세요.