Rust · iterator

체인은 만들고, 소비자가 값을 끌어온다

반복자 어댑터는 계산 규칙을 겹겹이 보관하고, 소비 어댑터가 next를 호출할 때 실제 순회가 시작됩니다.

준비

iter()

컬렉션을 빌려 순서대로 참조를 낼 반복자를 만듭니다.

lazy

map()

각 아이템을 바꿀 클로저를 저장하지만 아직 호출하지 않습니다.

lazy

filter()

남길 조건만 체인에 더하고 원본 데이터는 그대로 둡니다.

소비

collect() / sum()

값을 요구하며 next를 반복 호출해 벡터나 합계를 만듭니다.

실행 시점

no work yet → run

v.iter()
  .map(|x| x + 1)
  .filter(|x| *x > 2)
  .collect::<Vec<_>>()

소비 어댑터의 역할

collect 결과를 컬렉션에 모음
sum 아이템을 누적해 값 반환
for 반복자를 가져와 차례로 실행