Iterator는 Rust 코딩중에 아주 많이 사용하는 트레잇이다
Iterator는 기본적으로 수많은 provided method를 제공하고
이를 이용해서 반복자를 탐색하거나 새로운 반복자로 만들수있다
(*) enumerate의 예제
그리고 최종적으로는 `next` 메소드를 사용해서 원소를 꺼내는데 보통 next를 직접 쓰기보단 `for` 문을 사용한다
for문은 `IntoIterator`를 구현한 객체의 원소를 하나하나 꺼내주는데 여기서 IntoIterator는 반복자와 반복자는 아니지만 반복자로 변환될수있는 타입들이 구현한다
(*) &Vec은 Iterator를 구현하진 않지만 IntoIterator를 구현하기 때문에 for문에 넣을수있다
왜 첫번째 원소를 꺼낼때도 next()를 써야하는거야? first나 start같은거로 꺼내야하는 거 아니야?
first랑 next랑 어떻게 다른건데
처음 것이 next라는게 어감이 이상하잖아. 헷갈리던데... first 같은 걸로 iter시작을 알려야 하는 것 아닌가 해서...