slice
인덱스 start(포함)부터 end(미포함) 사이의 값을 반환합니다.
Iterable<A> slice<A>(int start, Iterable<A> iterable, [int? end])
FxAsyncIterable<A> sliceAsync<A>(int start, FxAsyncIterable<A> iterable, [int? end])
Fx<T> Fx.slice(int start, [int? end]) // chain
FxAsync<T> FxAsync.slice(int start, [int? end])
강의
slice는 범용 인덱스 구간 연산자입니다. 위치가
[start, end)에 해당하는 원소를 내보내며,
end를 생략하면 "소스 끝까지"라는 뜻입니다.
drop(start로)과
take(end로)를 한 번에 아우르는 단일 연산자인 셈입니다.
data-first 형태에서는 인자 순서에 주의하세요 — 대부분의 FxDart 함수와 달리
iterable이 가운데에 옵니다:
slice(start, iterable, [end])로, FxTS를 그대로 따랐습니다.
체인 형태에서는 이터러블이 수신자이므로 이런 특이점이 없습니다:
fx(iterable).slice(start, end). 내부적으로
slice는 소스를 한 번 훑으며 인덱스를 세는 것뿐이라
지연 평가가 유지되고, end만 넘겨 준다면 무한 소스에서도
문제없이 동작합니다.
데모 1 · 기본과 인자 순서
데모 2 · 비동기
직접 해 보기
연습: slice로 인덱스 2부터 5 직전까지의 구간을
잘라내 보세요.