Menu
Coddy logo textTech

가변 순회

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

때로는 단순히 벡터 요소를 읽는 것 이상의 작업이 필요할 때가 있습니다. 즉, 요소를 수정해야 할 때가 있습니다. 이전 레슨에서는 요소를 반복하며 값을 읽는 방법을 살펴보았지만, 이번 레슨에서는 가변 참조(mutable references)를 사용하여 반복 과정에서 요소를 변경하는 방법을 배웁니다.

반복하는 동안 요소를 수정하려면, for 루프에서 & 대신 &mut을 사용해야 합니다:

let mut numbers = vec![1, 2, 3, 4];

for number in &mut numbers {
    *number = *number * 2;
}

&mut numbers는 벡터에 대한 가변 참조를 생성하며, 각 반복마다 개별 요소에 대한 가변 참조를 제공합니다. * 연산자(역참조 연산자라고 함)는 참조가 가리키는 실제 값에 접근하고 이를 수정하는 데 사용됩니다.

이 패턴은 데이터를 제자리에서 변환하는 데 매우 유용합니다. 수정된 값으로 새로운 벡터를 생성하는 대신, 기존 벡터를 효율적으로 업데이트할 수 있습니다. 내용을 변경하는 것이므로, 이 작업이 작동하려면 벡터가 mut로 선언되어야 합니다.

위의 루프가 끝난 후, numbers[2, 4, 6, 8]을 포함하게 됩니다 - 각 원래의 값이 그 자리에서 두 배가 됩니다.

challenge icon

챌린지

쉬움

가변 벡터 numbers를 받아 각 요소에 10을 더한 후, 수정된 벡터를 반환하는 add_ten_to_all 함수를 작성하세요.

각 요소를 직접 수정하려면 &mut를 사용한 가변 반복(mutable iteration)을 사용하세요. 실제 값에 접근하고 수정하려면 역참조 연산자 *를 사용해야 함을 기억하세요.

매개변수:

  • numbers (Vec<i32>): 수정할 정수형 가변 벡터

반환값: 각 요소에 10이 더해진 수정된 벡터 (Vec<i32>)

치트 시트

반복문 도중 벡터 요소를 수정하려면 &mut를 사용한 가변 참조(mutable references)를 사용하세요:

let mut numbers = vec![1, 2, 3, 4];

for number in &mut numbers {
    *number = *number * 2;
}

주요 사항:

  • &mut numbers는 벡터에 대한 가변 참조를 생성합니다
  • 각 반복마다 개별 요소에 대한 가변 참조를 제공합니다
  • * 연산자(역참조 연산자)는 실제 값에 접근하고 이를 수정합니다
  • 수정을 허용하려면 벡터가 mut로 선언되어야 합니다

이 패턴을 사용하면 새로운 벡터를 생성하지 않고도 데이터를 효율적으로 제자리에서(in place) 변환할 수 있습니다.

직접 해보기

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

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

Logic & Flow의 모든 레슨