원본 시퀀스
vec![1, 2, 3]
아직 순회 상태는 없다.
iter()는 준비만 하고, 소비자가 값을 당길 때 진행한다
반복자를 만든 순간에는 원소를 처리하지 않는다. next()나
for가 요청할 때 내부 위치가 한 칸씩 움직인다.
vec![1, 2, 3]
아직 순회 상태는 없다.
let it = v1.iter();
위치만 준비한다. 처리한 원소는 0개다.
next() · for val in it
요청마다 상태가 변하고 다음 원소를 꺼낸다.
None이 시퀀스의 종료를 알린다.
생성과 실행의 경계를 기억하자: 반복자는 시퀀스를 복사하지 않고, 소비될 때 필요한 원소만 순서대로 내놓는다.