into_iter 랑 iter 차이가 뭐임?
러스트 북 보니까 into_iter() 는 벡터 소유권을 가져가버린다고 하는데, 내가 만든 2 버전 함수에서 non-mut 레퍼런스에 대해서 into_iter() 하니까 실행은 되더라고...
그러면 into_iter() 은 벡터의 소유권을 가져가서 이터레이터를 생성하는게 아니라 뭔가 다른 미묘하게 다른 동작을 하는 것 같은데 설명 가능한 사람?
into_iter 랑 iter 차이가 뭐임?
러스트 북 보니까 into_iter() 는 벡터 소유권을 가져가버린다고 하는데, 내가 만든 2 버전 함수에서 non-mut 레퍼런스에 대해서 into_iter() 하니까 실행은 되더라고...
그러면 into_iter() 은 벡터의 소유권을 가져가서 이터레이터를 생성하는게 아니라 뭔가 다른 미묘하게 다른 동작을 하는 것 같은데 설명 가능한 사람?
자문자답
https://qiita.com/harvath/items/b79eaf61e73e79e3fc0f
https://stackoverflow.com/questions/34733811/what-is-the-difference-between-iter-and-into-iter
&Vec<T>: IntoIterator<Item = &T> ㅇㅅㅇ
https://doc.rust-lang.org/std/vec/struct.Vec.html#impl-IntoIterator
괄호 깨져가지고 뭔지는 잘 몰겠는데 결국 & 붙은 벡터에서 파생되는 IntoIterator 의 T 는 &T 이라는거?
Vec &Vec &mut Vec 셋다 IntoIterator 구현하고있음
&Vec에 into_iter 호출해도 &들은 Copy라서 소유권 안잃어버림