elementAtOrNull

주어진 인덱스의 원소를 반환하고, 인덱스가 범위를 벗어나면 null을 반환합니다.

A? elementAtOrNull<A>(int index, Iterable<A> iterable) Future<A?> elementAtOrNullAsync<A>(int index, FxAsyncIterable<A> iterable) T? Fx.elementAtOrNull(int index) // sync chain: inherited Iterable method A? nth<A>(int index, Iterable<A> iterable) // FxTS alias

강의

elementAtOrNull은 이터러블을 순회하다가 index에 도달하는 즉시 멈추므로, 언제나 index + 1개만 꺼냅니다 — 거대한 지연 시퀀스에서도 저렴하고, 인덱싱 한 번 하자고 전체를 List로 구체화하는 것보다 훨씬 저렴합니다. elementAtOrNull은 Dart다운 이름이고 (Iterable.elementAtOrNull과 짝을 이룹니다), fxdart는 FxTS식 표기인 nth도 함께 받아들입니다 — 둘은 같은 연산자입니다. 음수 인덱스나 끝을 넘어선 인덱스는 그냥 null을 내놓습니다. 일부 언어의 배열 인덱싱과 달리 여기에는 끝에서부터 되감는 동작이 없습니다 — 인덱스는 유효한 음이 아닌 위치여야 합니다.

동기 체인에서 fx(iterable).elementAtOrNull(index)Iterable에서 물려받은 메서드입니다 — 어떤 Fx 체인에서든 그대로 호출하면 됩니다. Fx Iterable이기 때문입니다. FxAsyncIterable에는 최상위 elementAtOrNullAsync(index, iterable)을 쓰세요.

데모 1 · 기본

데모 2 · 지연 평가 & 비동기

인덱스 3을 가져올 때 100만 개짜리 범위에서 단 4개만 꺼내 온다는 사실을 peek 카운터로 확인합니다.

직접 해 보기

연습: elementAtOrNull로 은메달리스트(인덱스 1)를 출력하거나, 없으면 'unclaimed'를 출력해 보세요.

관련 항목: headelementAtOrNull(0, ...)의 축약형 · last — 마지막 원소 · find — 인덱스 대신 술어로 찾기 · slice — 구간 전체를 꺼내기