향상된 for 루프
Coddy Rust 여정의 Fundamentals 섹션에 포함된 레슨 — 75개 중 66번째.
배열을 반복하는 여러 가지 방법이 있습니다. 그중 몇 가지는 다음과 같습니다:
다음 배열을 살펴봅시다:
let numbers = [1, 2, 3, 4, 5];직접 반복자(Direct Iterator):
for num in numbers.iter() {} // 값: 1, 2, 3, 4, 5
인덱스 & 값:
for (index, value) in numbers.iter().enumerate() { } // 값들: (0,1), (1,2), (2,3), (3,4), (4,5)
특정 크기의 슬라이스:
for chunk in numbers.chunks(2) { } // 값: [1,2], [3,4], [5]
가변 반복을 통한 순회:
for num in numbers.iter_mut() { *num *= 2; } // 배열의 상태: [2, 4, 6, 8, 10]
챌린지
쉬움항목과 가격이 포함된 쇼핑 리스트를 처리하고 데이터의 다양한 뷰를 제공하는 프로그램을 작성하세요.
프로그램은 다음을 수행해야 합니다:
- 각 항목 번호와 가격을 출력합니다 (enumerate 사용)
- 가격을 두 개씩 묶어 (chunks 사용) "bundle deals"로 출력합니다
- 모든 가격에 10% 할인을 적용합니다 (iter_mut 사용)
- 최종 할인된 가격을 출력합니다
치트 시트
Rust에서 배열을 반복하는 다양한 방법:
직접 반복자 (Direct Iterator):
for num in numbers.iter() {}
// 값: 1, 2, 3, 4, 5enumerate를 이용한 인덱스 및 값:
for (index, value) in numbers.iter().enumerate() { }
// 값: (0,1), (1,2), (2,3), (3,4), (4,5)chunks를 이용한 특정 크기의 슬라이스:
for chunk in numbers.chunks(2) { }
// 값: [1,2], [3,4], [5]iter_mut를 이용한 가변 반복:
for num in numbers.iter_mut() {
*num *= 2;
}
// 배열 상태: [2, 4, 6, 8, 10]직접 해보기
fn main() {
let mut prices = [2.75, 1.50, 5.00, 3.5, 4.1, 2.25, 7.9];
println!("Original Prices:");
// TODO: enumerate를 사용하여 각 항목 번호와 가격을 출력하세요
// 예상 결과: "Item 1: $2.99" 등
println!("\nBundle Deals:");
// TODO: chunks를 사용하여 가격 쌍과 그 합계를 출력하세요
// 예상 결과: "Bundle 1: $2.99 + $1.50 = $4.49" 등
// TODO: iter_mut를 사용하여 모든 가격에 10% 할인을 적용하세요
println!("\nPrices after 10% discount:");
// TODO: 할인 후 최종 가격을 출력하세요
// 예상 결과: "$2.69" 등
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.