여러 값 매칭하기
Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 2번째.
때때로 동일한 코드를 실행해야 하는 여러 다른 값들을 매칭해야 할 때가 있습니다. 각 값에 대해 별도의 암(arm)을 작성하는 대신, Rust에서는 | (OR) 연산자를 사용하여 하나의 암에 여러 패턴을 결합할 수 있습니다.
하나의 arm에서 여러 값을 매칭하는 방법은 다음과 같습니다:
let month = 12;
match month {
12 | 1 | 2 => println!("Winter"),
3 | 4 | 5 => println!("Spring"),
6 | 7 | 8 => println!("Summer"),
9 | 10 | 11 => println!("Fall"),
_ => println!("Invalid month"),
}| 연산자는 영어의 "OR"처럼 작동합니다. 만약 값이 |로 구분된 패턴 중 어느 하나라도 일치하면, 해당 암(arm)이 실행됩니다. 이는 모두 동일한 작업을 수행하는 별도의 암들을 갖는 것보다 코드를 훨씬 더 깔끔하게 만들어 줍니다.
챌린지
쉬움요일을 나타내는 숫자(1-7)를 입력으로 받습니다. 입력을 읽어 정수로 변환한 후, match 표현식과 | 연산자를 사용하여 평일(weekday)인지 주말(weekend)인지 출력하세요.
요구 사항:
- 숫자가
1,2,3,4, 또는5인 경우,"Weekday"를 출력합니다. - 숫자가
6또는7인 경우,"Weekend"를 출력합니다. - 그 외의 다른 숫자인 경우,
"Invalid day"를 출력합니다.
입력: 요일을 나타내는 단일 정수
출력: "Weekday", "Weekend", 또는 "Invalid day" 중 하나를 출력합니다.
치트 시트
| (OR) 연산자를 사용하여 하나의 매치 암(match arm)에 여러 패턴을 결합할 수 있습니다. 값이 |로 구분된 패턴 중 어느 하나와 일치하면, 해당 암이 실행됩니다.
let month = 12;
match month {
12 | 1 | 2 => println!("Winter"),
3 | 4 | 5 => println!("Spring"),
6 | 7 | 8 => println!("Summer"),
9 | 10 | 11 => println!("Fall"),
_ => println!("Invalid month"),
}직접 해보기
use std::io;
fn main() {
// 입력 읽기
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let day: i32 = input.trim().parse().expect("Please enter a number");
// TODO: 아래에 | 연산자와 함께 match 표현식을 사용하여 코드를 작성하세요
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.