소스 선택
원본을 빌릴지, 가변으로 빌릴지, 소유권을 옮길지 먼저 정합니다.
iter()
`iter`, `map`, `filter`는 체인을 준비하고, `sum`, `collect`, `for`가 값을 요구할 때 `next`가 반복 호출됩니다.
원본을 빌릴지, 가변으로 빌릴지, 소유권을 옮길지 먼저 정합니다.
iter()
필터링과 변환은 아직 실행되지 않은 계산 계획으로 이어집니다.
map().filter()
결과가 필요한 메서드가 호출되면 내부에서 `next`가 전진합니다.
collect()
소비한 반복자는 다시 쓸 수 없으므로 필요하면 새 반복자를 만듭니다.
sum()
`map`만 호출하고 결과를 버리면 경고가 나고 클로저도 실행되지 않습니다.
unused Map
컬렉션의 값을 결과로 옮기려면 `into_iter`가 의도를 더 분명히 드러냅니다.
Vec<T> → T
`filter`의 클로저는 `shoe_size` 같은 주변 값을 캡처해 조건 비교에 반영합니다.
|s| s.size == shoe_size