러스트는 다른 언어에서 제공하는 switch
문이 없습니다. 대신 비슷한 동작을 하는 match
가 있습니다.
match
를 어떻게 사용할 수 있는지 예제와 함께 알아보겠습니다.
1. 일치하는 조건의 코드 실행
아래와 같이 Switch 처럼, 입력 값과 일치하는 조건에 대한 코드를 실행시킬 수 있습니다.
아래 예제에서
- choice가 1일 때, match의 1에 해당하는 코드가 수행됩니다.
- choice가 2일 때, match의 1에 해당하는 코드가 수행됩니다.
- choice가 다른 값일 때,
_
에 해당하는 코드가 수행됩니다. Java의 default와 동일합니다.
fn main() {
let choice = 1;
match choice {
1 => println!("choice is 1"),
2 => println!("choice is 2"),
_ => println!("choice is undefined value"),
};
}
Output:
choice is 1
2. 일치하는 조건의 값 리턴
match의 다른 사용 방법으로, 일치하는 조건에 대한 값을 리턴합니다.
아래 코드에서
- choice가 1일 때, match의 1에 해당하는 값 100이 리턴됩니다.
- choice가 2일 때, match의 1에 해당하는 값 200이 리턴됩니다.
- choice가 다른 값일 때,
_
에 해당하는 값 300이 리턴됩니다.
fn main() {
let choice = 1;
let num = match choice {
1 => 100,
2 => 200,
_ => 300,
};
println!("num: {}", num);
}
Output:
num: 100
3. match에 문자열(str)을 사용하는 예제
int 뿐만 아니라, str 타입도 match 구문에 사용할 수 있습니다.
fn main() {
let choice: &str = "2";
let num = match choice {
"1" => 100,
"2" => 200,
_ => 300,
};
println!("num: {}", num);
}
Output:
num: 200
4. match에 ENUM을 사용하는 예제
아래와 같이 ENUM 타입도 match 구문에 사용할 수 있습니다.
fn main() {
enum FRUITS {
APPLE,
KIWI,
BLUEBERRY,
MELON
}
let choice = FRUITS::KIWI;
let res = match choice {
FRUITS::APPLE => 100,
FRUITS::KIWI => 200,
FRUITS::BLUEBERRY => 300,
FRUITS::MELON => 400,
_ => 500,
};
println!("result: {}", res);
}
Output:
result: 200
Loading script...
Related Posts
- Rust - String을 char 리스트(Vector)로 변환
- Rust - 문자가 대문자인지 소문자인지 확인
- Rust - String에서 줄바꿈(newline) 문자 제거 방법
- Rust - String 대문자, 소문자 변환
- Rust - 현재 시간 가져오기 (DateTime, chrono)
- Rust - 예외 처리 방법 (Exception handling)
- Rust - String.find()으로 문자열 Index 찾기
- Rust - match (Switch) 사용 방법
- Rust - Vector의 요소 제거 방법 (remove, retain, drain)
- Rust - String의 특정 Index 값 가져오기
- Rust - 문자열 뒤집기, 역순으로 변경
- Rust - String 객체에 문자열 추가하기
- Rust - sleep(), 몇 초 지연/대기 방법
- Rust - String을 Int, Float으로 변환
- Rust - Integer를 String으로 변환
- Rust - Float를 String으로 변환
- Rust - String 비교 방법 (==, !=, eq, ne)
- Rust - String을 str으로, str을 String으로 변환
- Rust - String 공백 제거 (trim, replace)
- Rust - 2개의 배열이 같은지 비교 (==, equals)
- Rust - 배열 길이 가져오기 (Array length)
- Rust - Vector를 배열로 변환 (vector to array)
- Rust - 배열의 최소, 최대 값 찾기 (min, max)
- Rust - 배열의 합계, 평균 (sum, average)
- Rust - 2개의 Vector가 같은지 비교 (==, equals)
- Rust - HashMap을 Vector로 변환
- Rust - Vector의 최소, 최대 값 찾기 (min, max)
- Rust - Vector의 합계, 평균 (sum, average)
- Rust - 벡터 길이 가져오기 (Vector length)
- Rust - 배열을 HashSet으로 변환
- Rust - 배열을 벡터로 변환하는 방법
- Rust - 배열(벡터) 모든 요소 출력
- Rust - 배열 나누기, 자르기 (split_at, slice)
- Rust - 2개 벡터 하나로 합치기
- Rust - HashSet을 Vector로 변환