Menu
Coddy logo textTech

벡터 순회하기

Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 11번째.

이제 벡터를 생성하고 개별 요소에 접근하는 방법을 알게 되었으니, 벡터의 모든 요소를 체계적으로 처리하는 방법을 배워보겠습니다. for 루프는 이 작업에 완벽하며, 각 요소를 순서대로 방문할 수 있게 해줍니다.

벡터를 반복하는 기본적인 구문은 다음과 같습니다:

let names = vec!["Alice", "Bob", "Charlie"];

for name in &names {
    println!("Hello, {}!", name);
}

names 앞에 있는 &를 주목하세요. 이것은 벡터에 대한 참조를 생성하여, 벡터 자체의 소유권을 가져오지 않고도 각 요소를 읽을 수 있게 해줍니다. 각 반복마다 루프 변수 name을 통해 한 번에 하나의 요소에 접근할 수 있습니다.

for 루프는 자동으로 경계 검사(bounds checking)를 처리합니다. 수동 인덱싱과 달리, 존재하지 않는 요소에 실수로 접근하려고 시도할 일이 없습니다. 루프는 벡터에 포함된 요소의 수만큼 정확히 방문하므로 안전하고 편리합니다.

이 패턴은 어떤 타입의 벡터와도 함께 사용할 수 있습니다:

let scores = vec![85, 92, 78, 90];

for score in &scores {
    println!("Score: {}", score);
}

이 방식은 벡터의 값을 읽어야 할 때 모든 요소를 처리하는 가장 일반적이고 관용적인 방법입니다.

challenge icon

챌린지

쉬움

벡터 numbers를 인자로 받아 모든 요소의 합을 반환하는 함수 sum_all_elements를 작성하세요.

for 루프를 사용하여 벡터를 순회하고 모든 요소의 합을 누적하세요.

매개변수:

  • numbers (Vec<i32>): 합산할 정수 벡터

반환값: 벡터 내 모든 요소의 합 (i32)

치트 시트

벡터를 반복하려면, 벡터에 대한 참조와 함께 for 루프를 사용하세요:

let names = vec!["Alice", "Bob", "Charlie"];

for name in &names {
    println!("Hello, {}!", name);
}

벡터 이름 앞의 &는 참조를 생성하며, 소유권을 가져오지 않고 각 요소를 읽을 수 있게 해줍니다. 루프는 자동으로 경계 검사(bounds checking)를 처리하고 벡터에 포함된 요소의 수만큼 정확히 방문합니다.

이 패턴은 모든 벡터 타입에서 작동합니다:

let scores = vec![85, 92, 78, 90];

for score in &scores {
    println!("Score: {}", score);
}

직접 해보기

fn sum_all_elements(numbers: Vec<i32>) -> i32 {
    // 여기에 코드를 작성하세요
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨