Rust의 반복문

2023. 1. 8. 16:46Language/Rust

개요

Rust에서 사용 가능한 반복문에 대해 알아봅니다.

 

for 반복문

rust에서 for 반복문은 컴파일러의 메서드 호출로 확장됩니다. 아래와 같이 for 반복문은 세가지 표현식이 있습니다.

 

형태 Detail 접근
for item in collection for item in
IntoIterator::into_iter(collection)
소유권
for item in $collection for item in collection.iter() 읽기 전용
for item in &mut collection for item in collection.iter_mu() 읽고 쓰기

 

익명 반복문

블록 내에서 지역 변수를 사용하지 않는 다면 관습적으로 밑줄(_)를 사용합니다.

for _ in 0..10 {
//...
}

 

인덱스 변수 관리를 피하는 법

대부분 언어에서 각 반복문이 끝날 때 증가하는 임시 변수를 사용하여 반복하는게 일반적입니다. 관례적으로 (i)를 사용합니다.

 

let collection = [1,2,3,4,5,6];
for i in 0..collection.len(){
  let item = collection[i];
  //...
}

Rust 문법에는 맞지만 권장하는 방법은 아닙니다. 아래와 같이 두가지 문제점을 일으킬 수 있습니다.

 

1. 성능 : collection[index] 구문을 사용해 값을 인덱실할 때 경계 확인으로 인한 런타임 비용 발생

2. 안전 : 계속해서 주기적으로 collection에 접근하면 다른 곳에서 collection을 변경했을 지도 모릅니다.

 

무한 반복

대부분 언어에서 무한 반복을 만들 때 아래와 같이 많이 만듭니다.

while(true){
  // ...
}

하지만 rust에서는 loop라는 키워드를 제공합니다. 해당 키워드는 break 키워드나 종료 되기 전까지 무한 반복으로 수행 됩니다.

 

loop {
  // ...
}

 

'Language > Rust' 카테고리의 다른 글

Rust Dangling Pointer  (0) 2023.02.25
Rust의 배열  (0) 2023.01.09
Rust의 제네릭(Generic)  (0) 2023.01.09
Rust의 숫자  (0) 2023.01.08
Rust 실행 파일 만들기  (0) 2023.01.08