0Pricing
Learn Rust Coding · 강의

인덱싱과 반복

요소에 접근하고 순회해 보세요.

인덱싱과 반복은(는) CoddyKit의 무료 Learn Rust Coding 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn Rust Coding 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.

인덱스로 읽기

벡터의 각 요소에는 인덱스라는 위치 번호가 있습니다. 인덱스는 0부터 시작하므로 첫 번째 요소의 인덱스는 0입니다.

v[0]처럼 대괄호를 사용해 요소를 읽습니다.

fn main() {
    let v = vec![100, 200, 300];
    println!("first = {}", v[0]);
    println!("third = {}", v[2]);
}

범위를 벗어나면 패닉 발생

벡터의 끝을 넘어 인덱싱하면 패닉이 발생하고 프로그램이 중지됩니다. 길이가 3인 벡터에서 유효한 인덱스는 0, 1, 2뿐입니다.

여기서 v[5]를 요청하면 오류가 발생하므로 인덱스가 범위 안에 있는지 항상 확인하세요.

get으로 안전하게 접근하기

get 메서드는 패닉을 발생시키는 대신 Option을 반환합니다. 인덱스가 존재하면 Some(value)를, 범위를 벗어나면 None을 얻습니다.

이를 통해 요소가 없을 때도 안전하게 처리할 수 있습니다.

fn main() {
    let v = vec![1, 2, 3];
    match v.get(5) {
        Some(x) => println!("got {}", x),
        None => println!("no such index"),
    }
}

요소 개수

len 메서드는 요소의 개수를 알려 줍니다. 항상 마지막 유효 인덱스는 len - 1입니다.

길이를 알면 안전하게 반복하거나 인덱싱 전에 범위를 확인할 수 있습니다.

fn main() {
    let v = vec![5, 6, 7, 8];
    println!("length = {}", v.len());
    println!("last = {}", v[v.len() - 1]);
}

값 순회하기

모든 요소를 확인하는 가장 깔끔한 방법은 벡터의 참조를 대상으로 for 반복문을 사용하는 것입니다. &v를 사용하면 벡터를 빌리면서 이후에도 계속 사용할 수 있습니다.

각 반복에서 n은 한 요소에 대한 참조로 바인딩됩니다.

fn main() {
    let v = vec![2, 4, 6];
    for n in &v {
        println!("value: {}", n);
    }
}

인덱스와 함께 순회하기

위치도 필요할 때는 iter().enumerate()를 호출합니다. 각 단계에서 (index, value) 쌍을 반환합니다.

번호가 있는 출력이나 위치에 따라 달라지는 규칙에 적합합니다.

fn main() {
    let v = vec!["a", "b", "c"];
    for (i, item) in v.iter().enumerate() {
        println!("{}: {}", i, item);
    }
}

각 요소 변경하기

값을 제자리에서 수정하려면 &mut v를 순회해야 하며 벡터는 mut이어야 합니다. 각 n은 변경 가능한 참조이므로 대입하려면 *로 역참조합니다.

여기서는 모든 요소를 두 배로 만듭니다.

fn main() {
    let mut v = vec![1, 2, 3];
    for n in &mut v {
        *n *= 2;
    }
    println!("{:?}", v);
}

벡터의 합 구하기

반복자를 사용하면 계산을 쉽게 할 수 있습니다. iter().sum() 메서드는 모든 요소를 더합니다.

Rust가 결과 타입을 알아야 하므로 합계를 i32로 명시합니다.

fn main() {
    let v = vec![10, 20, 30];
    let total: i32 = v.iter().sum();
    println!("sum = {}", total);
}

첫 요소와 마지막 요소

first()와 last() 메서드는 벡터의 양 끝 요소에 대한 Option 참조를 반환합니다. 벡터가 비어 있으면 None을 반환합니다.

이를 사용하면 직접 인덱스를 계산하거나 범위를 벗어나 오류가 발생하는 일을 피할 수 있습니다.

fn main() {
    let v = vec![7, 8, 9];
    println!("{:?}", v.first());
    println!("{:?}", v.last());
}

contains로 검색하기

값이 있는지 확인하려면 contains를 사용합니다. 값에 대한 참조를 받아 bool을 반환합니다.

벡터를 검색해 포함 여부를 빠르게 확인할 수 있습니다.

fn main() {
    let v = vec![3, 6, 9];
    println!("has 6? {}", v.contains(&6));
    println!("has 5? {}", v.contains(&5));
}

범위 슬라이스하기

슬라이스는 &v[1..3]처럼 범위를 사용해 벡터의 일부를 빌립니다. 시작 위치는 포함되고 끝 위치는 포함되지 않습니다.

슬라이스를 사용하면 복사하지 않고 요소의 일부 구간을 다룰 수 있습니다.

fn main() {
    let v = vec![10, 20, 30, 40];
    let middle = &v[1..3];
    println!("{:?}", middle);
}

빠른 확인

인덱싱과 반복자 사용에 대한 이해도를 확인해 보세요.

복습

인덱스로 요소를 읽고, get으로 안전하게 접근하며, for, enumerate, &mut으로 순회하는 방법을 배웠습니다.

또한 sum, first, last, contains, 슬라이스를 사용했습니다. 다음에는 벡터의 크기를 늘리고 줄이겠습니다.

자주 묻는 질문

“인덱싱과 반복” 강의는 무료인가요?

네 — “인덱싱과 반복” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn Rust Coding 강의 전체를 잠금 해제할 수 있습니다. Learn Rust Coding 강의에는 총 4개의 강의가 포함되어 있습니다.

“인덱싱과 반복”에서 뭘 배우나요?

요소에 접근하고 순회해 보세요. 브라우저에서 직접 실행하는 실습 코드로 Learn Rust Coding을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn Rust Coding을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn Rust Coding은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“인덱싱과 반복” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn Rust Coding 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn Rust Coding 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 벡터 만들고 채우기
  2. 인덱싱과 반복
  3. 늘리기와 줄이기
  4. 구조체 벡터
← Learn Rust Coding(으)로 돌아가기