Iterator pass

반복자로 일련의 아이템들 처리하기

반복자는 게으르게 준비되고, 소비 어댑터를 만났을 때 실제로 값을 꺼냅니다. next 호출과 소유권 종류를 함께 봅니다.

13

소비 지점

map만으로는 움직이지 않고 collect, sum, for가 값을 끌어냅니다.

lazy

게으른 연결

어댑터 체인은 실행 계획을 쌓고, 마지막 소비자가 나타날 때까지 요소를 처리하지 않습니다.

next

상태가 전진

next는 반복자 내부 위치를 바꾸므로 테스트에서는 mut 반복자가 필요합니다.

borrow

소유권 선택

iter, iter_mut, into_iter 중 어떤 값 형태가 필요한지 먼저 고릅니다.

코드 검산

  • map 결과를 쓰지 않으면 경고가 나는 이유를 설명합니다.
  • filter 클로저가 참조를 받는지 값 자체를 받는지 확인합니다.

반복자 읽기 기준

  • 체인의 왼쪽은 값 공급, 가운데는 변환, 오른쪽은 소비로 나눕니다.
  • 반환 타입이 새 컬렉션인지 단일 값인지 보고 소비자를 구분합니다.