6. match
match는 다른 언어의 switch문과 비슷합니다. 하지만 그 활용도나 중요성은 훨씬 큽니다.
match 변수{
변수1 => 실행1,
변수2 => 실행2,
...
}
예를 보겠습니다.
let mut var1 = 3;
match var1{
1 => println!("var = 하나"),
2 => println!("var = 둘"),
3 => println!("var = 셋"),
4 => println!("var = 넷"),
_ => println!("var = 그외"), // default
}
// 출력
var = 셋
위 예에서 match 문 마지막 줄의 ‘_’은 다른 언어의 ‘default’와 같은 역할을 합니다. 즉 앞서 나온 선택지 외의 모든 선택지를 의미합니다. 당연히 가장 마지막 줄에 사용합니다.
match 문의 케이스는 꼭 하나의 값이 아니어도 됩니다. 아래는 Range로 설정된 케이스의 예시입니다.
let mut var1 = 3;
match var1{
1..5 => {}, // 1
5..=10 => {}, // 2
22 | 33 => {}, // 3
13 => {},
_ => {},
}
// 출력
..에러
error[E0658]: exclusive range pattern syntax is experimental
실행 하면 에러가 발생합니다.
// 1: range를 케이스로 사용 하고 있습니다. 5가 포함 되지 않은 것에 주의 하십시오. match 문에서 이처럼 열린 Range를 사용 하면 에러가 발생 합니다. // 2 처럼 사용해야 합니다.
// 2: 마지막 인덱스 10을 포함합니다. 5, 6, 7, 8, 9, 10 중에 하나에 해당하면 실행합니다.
// 3: 22 또는 33 둘 중에 하나에 해당하면 실행합니다.
match문은 Rust에서 아주 중요합니다.
여기에서는 match문의 기본 사용 방법 정도만 눈여겨 봐 주십시오.
반응형
'Rust 입문' 카테고리의 다른 글
[Rust] Closure (0) | 2022.10.05 |
---|---|
[Rust] 함수 (0) | 2022.10.05 |
[Rust] For (0) | 2022.10.02 |
[Rust] While (0) | 2022.10.02 |
[Rust] Loop (0) | 2022.10.02 |