안녕하세요! 러스트(Rust)라는 새로운 언어의 세계에 오신 것을 환영합니다. 지금까지 변수나 숫자를 배우느라 고생 많으셨어요. 오늘은 러스트의 꽃이라고 불리는 아주 똑똑하고 친절한 도구, **'매치(match) 연산자'**에 대해 배워볼게요!
---
여러분, 길거리에 있는 **자판기**를 떠올려 보세요.
- 500원을 넣으면 **생수**가 나옵니다.
- 1,000원을 넣으면 **콜라**가 나옵니다.
- 그 외에 이상한 장난감 동전을 넣으면 **"반환"** 버튼에 불이 들어오며 돌려줍니다.
**매치(match) 연산자**는 바로 이 자판기와 똑같아요! 어떤 값(동전)이 들어오느냐에 따라 미리 정해둔 결과(음료수)를 정확하게 내놓는 아주 꼼꼼한 친구랍니다.
---
우리는 상황에 따라 다른 행동을 하고 싶을 때가 있어요. "만약(if) 이렇다면~" 하고 물어볼 수도 있지만, 선택지가 너무 많으면 헷갈릴 수 있죠. 매치 연산자는 **패턴(Pattern: 비교할 모양이나 값)**을 미리 정해두고, 값이 그 패턴에 딱 맞을 때 실행되기 때문에 코드가 아주 깔끔하고 읽기 편해져요.
---
💻 자, 숫자를 넣으면 그 숫자를 한국어로 읽어주는 '숫자 통역 자판기'를 만들어 볼까요?
fn main() {
let number = 2; // 우리가 자판기에 넣을 숫자예요.
match number { // number가 어떤 모양인지 확인해볼까요?
1 => println!("하나!"), // 숫자가 1이면 "하나!"를 출력해요.
2 => println!("둘!"), // 숫자가 2이면 "둘!"을 출력해요.
3 => println!("셋!"), // 숫자가 3이면 "셋!"을 출력해요.
_ => println!("많은 숫자!"), // 그 외(언더바) 나머지 숫자는 모두 여기로 와요.
}
}
---
---
러스트는 아주 꼼꼼한 성격이에요. 매치 연산자를 쓸 때, 발생할 수 있는 **모든 경우의 수**를 다 적어주지 않으면 컴파일러(Compiler: 코드가 잘 짜였는지 검사해주는 로봇 선생님)가 "잠깐! 다른 숫자가 들어오면 어떡해?"라며 친절하게 알려준답니다. 그래서 마지막에 `_`를 써서 나머지 경우를 꼭 챙겨주는 게 중요해요.
| 37. if let으로 코드 단순화하기 (0) | 2026.08.21 |
|---|---|
| 36. 패턴 매칭의 즐거움 (0) | 2026.08.21 |
| 34. 반복문 탈출과 계속하기 (0) | 2026.08.21 |
| 33. 컬렉션 순회하기: for (0) | 2026.08.21 |
| 32. 조건부 반복: while (0) | 2026.08.21 |