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 직전까지의 구간을 잘라내 보세요.

관련 항목: drop — slice에서 시작 인덱스 쪽만 담당 · take — slice에서 개수/끝 쪽만 담당 · chunk — 소스 전체를 고정 크기 구간으로 나누기