Rust, 쉽게 하자!

Rust 입문

[Rust] match

바로크냥 2022. 10. 2. 11:31

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