count
지연 파이프라인이 만들어내는 원소가 몇 개인지 셉니다.
강의
count는 원소를 전부 훑으면서 개수를 세는 종결 연산자입니다 —
지름길은 없습니다. 상류 파이프라인이 지연 계산되는
map/filter 체인이라면 실제로 값을 끌어당기기
전까지는 길이가 정해져 있지 않기 때문입니다. 즉 100만 개짜리
range에 filter를 걸고 count를
호출하면 정말로 100만 개를 모두 순회합니다. 다만 그 과정에서
List를 만들지는 않습니다. count가 Dart다운
이름이고, fxdart는 FxTS식 표기인 size도 함께 받습니다 —
같은 연산자입니다.
어떤 원소 타입에서도 동작합니다 — 숫자 전용 종결 연산자
(sum,
min,
max,
average)와 달리 count는
이터러블 안에 무엇이 들었는지는 신경 쓰지 않고 몇 개인지만 봅니다.
동기 체인에서 count는 바로 Dart에서 물려받은
Iterable.length 게터입니다(괄호 없음).
Fx가 Iterable이므로
fx(pipeline).length가 체인을 훑으며 총 개수를 돌려줍니다.
이름 붙은 연산자로 쓰는 편이 좋다면 최상위 count(iterable)를,
.count()는 비동기 체인에서 쓰세요. 이미 구체적인
List를 들고 있다면 .length가 공짜입니다 —
count는 지연 체인의 결과를 List로 —
toList를 거쳐 — 먼저
구체화하지 않고 개수만 세고 싶을 때 꺼내 쓰는 도구입니다.
데모 1 · 기본
데모 2 · 비동기
직접 해 보기
연습: 재고 없음(값이 == 0)인 항목이 몇 개인지 세어 보세요.