프로그래밍/Rust

간단한 예시로 알아보는 iter vs into_iter 차이

Lou Park 2023. 6. 5. 13:10

iter()

&T를 iterate한다: 컬렉션의 Immutable Reference를 생성하여 iterate 수행

컬렉션의 요소를 읽기만 가능하고 수정할 수 없는 상태다. 

이를 통해 컬렉션의 요소에 안전하게 접근할 수 있다.

let vec = vec![1, 2, 3, 4, 5];
let iter = vec.iter(); 

// vec에 접근 가능하다.
println!("{:?}", vec);

 

 

into_iter()

T를 iterate한다: 컬렉션의 소유권을 가져와서 컬렉션을 소비(consume)하는 Iterator 생성.

컬렉션을 iterate하는 동안 원본 데이터를 소비함을 의미한다.

let vec = vec![1, 2, 3, 4, 5];
let iter = vec.into_iter(); 

// 여기서부터는 "vec"에 접근할 수 없다. 소유권이 이전되었기 때문이다.

'프로그래밍 > Rust' 카테고리의 다른 글

Rust 타입 시스템의 마법  (0) 2024.03.22
[wgpu] 파이프라인 (Pipeline)  (0) 2024.01.07
[Rust] Option<T>가 Null보다 나은 이유(번역)  (0) 2023.05.20
[Rust] Stack과 Heap (번역)  (1) 2023.05.14