Match 문
Coddy Rust 여정의 기초 섹션에 포함된 레슨. 75개 중 26번째.
match 표현식을 사용하면 값을 일련의 패턴과 비교하고 일치하는 패턴에 따라 코드를 실행할 수 있습니다.
다음은 match 표현식의 기본 구조입니다:
match variable {
pattern1 => expression1,
pattern2 => expression2,
// ... 더 많은 패턴
_ => default_expression,
}match 키워드 뒤에는 테스트하려는 값이 옵니다.
match의 각 분기는 패턴, 그 뒤를 잇는 =>, 그리고 실행할 코드로 구성됩니다.
밑줄 _은 다른 패턴과 일치하지 않는 모든 항목과 일치하는 기본 case입니다.
예시를 살펴보겠습니다:
let day = 3;
let day_name = match day {
1 => "Monday",
2 => "Tuesday",
3 => "Wednesday",
// ... 더 많은 패턴,
_ => "Invalid day",
};arm에서 여러 줄의 코드를 사용하려면 블록을 사용하세요:
let day = 3;
let day_name = match day {
1 => {
println!("First day of the week!");
"Monday"
},
2 => "Tuesday",
// ... 다른 경우들
_ => "Invalid day",
}; | 을 사용하여 여러 패턴을 일치시킬 수 있습니다:
let day = 3;
let day_type = match day {
1 | 2 | 3 | 4 | 5 => "Weekday",
6 | 7 => "Weekend",
_ => "Invalid day",
};Rust의 match 표현식은 모든 가능한 값을 포함해야 하므로 포괄적이어야 합니다. 컴파일러가 이를 확인해 줍니다.
챌린지
초급월 번호(1은 January, 2는 February 등)를 입력받아 해당 월이 속한 계절을 출력하는 프로그램을 작성하세요. 논리에는 match 문을 사용하세요.
계절과 해당 월은 다음과 같습니다:
- Winter: December (12), January (1), February (2)
- Spring: March (3), April (4), May (5)
- Summer: June (6), July (7), August (8)
- Autumn: September (9), October (10), November (11)
직접 해보기
use std::io;
fn main() {
let mut input = String::new();
io::stdin().read_line(&mut input).unwrap();
let month: i32 = input.trim().parse().unwrap();
// 아래에 코드를 작성하세요
let season =
// 아래 줄은 변경하지 마세요
println!("status = {}", season);
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 Rust 컴파일러