Iterator pass

반복자는 소비자를 만날 때 실제로 움직인다

왼쪽은 값 공급, 가운데는 게으른 변환, 오른쪽은 소비 지점이다. 실행 여부는 마지막 소비자를 보면 된다.

1. 공급iter, iter_mut, into_iter가 값 형태를 정한다.
2. 어댑터map, filter는 계획만 쌓고 아직 요소를 꺼내지 않는다.
3. 소비collect, sum, for, next에서 처리된다.
구분 대표 메서드 실행 시점 검산 포인트
게으른 연결 map, filter 소비자를 만나기 전까지 실행되지 않는다. 결과를 쓰지 않으면 경고가 나는 이유가 여기에 있다.
상태 전진 next 호출할 때마다 내부 위치가 바뀐다. mut 반복자가 필요한지 확인한다.
최종 소비 collect, sum, for 체인을 끝까지 끌어당겨 값을 만든다. 새 컬렉션인지 단일 값인지 반환 타입으로 구분한다.