안녕하세요! 러스트(Rust)라는 멋진 언어의 세계에 오신 것을 환영합니다. 오늘은 복잡한 코드를 아주 깔끔하게 다듬어주는 마법 같은 도구, **`if let`**에 대해 알아볼게요.
---
여러분 앞에 **'비밀 상자'**가 하나 있다고 상상해 보세요. 이 상자 안에는 보물이 들어있을 수도 있고, 비어있을 수도 있어요. (러스트에서는 이런 상태를 **Option(옵션: 값이 있을 수도 있고 없을 수도 있는 상태)**이라고 불러요.)
보통 우리는 상자를 열 때 이렇게 말하곤 합니다. > "상자를 열어봐. 만약 보물이 있으면 꺼내서 닦고, 만약 비어있으면 그냥 넘어가자.
" 그런데 만약 우리가 **"보물이 있을 때만"** 관심이 있고, 비어있을 때는 아무것도 하고 싶지 않다면 어떨까요? 매번 "비어있는 경우"를 일일이 확인하는 건 조금 귀찮은 일이죠.
---
먼저, `if let`을 쓰지 않았을 때의 코드를 볼게요. (이 방식은 `match`(매치: 모든 경우의 수를 확인하는 도구)를 사용합니다.)
let lucky_box = Some("황금 열쇠"); // 상자 안에 '황금 열쇠'가 들어있는 상태예요.
match lucky_box {
Some(item) => println!("{}를 찾았습니다!", item), // 보물이 있으면 출력해요.
None => (), // (논: 값이 없는 빈 상태)일 때는 아무것도 안 한다는 뜻이에요.
}
위의 코드는 빈 상태(`None`)까지 신경 써야 해서 조금 길어 보이죠? 이제 **`if let`**으로 훨씬 간단하게 바꿔볼게요!
let lucky_box = Some("황금 열쇠"); // 상자 안에 '황금 열쇠'를 준비해요.
// 만약(if) 상자를 열었을 때 보물(Some)이 있다면(let) 그 보물을 item이라고 부를게요!
if let Some(item) = lucky_box {
println!("{}를 찾았습니다!", item); // 보물이 있을 때만 이 줄이 실행돼요.
}
---
1. **코드가 짧아져요**: 내가 관심 있는 상황(보물이 있는 경우)만 딱 집어서 코드를 짤 수 있어요.
2. **읽기 편해요**: "만약 보물이 있다면 이걸 해!"라는 의미가 한눈에 들어옵니다.
3. **귀찮음 해결**: 나머지 상황(빈 상자인 경우)을 굳이 설명하지 않아도 러스트가 알아서 이해해 줍니다. 이것을 **Syntactic sugar(문법적 설탕: 복잡한 문법을 더 쉽고 달콤하게 만들어주는 기능)**라고 부르기도 해요.
---
### 🌟 오늘의 응원
새로운 문법이 나올 때마다 "이걸 다 외워야 하나?" 걱정되실 수도 있어요. 하지만 괜찮습니다! `if let`은 여러분의 코드를 더 예쁘고 간결하게 만들어주기 위해 나타난 친절한 친구일 뿐이니까요.
| 39. Rust의 심장: 소유권이란? (0) | 2026.09.01 |
|---|---|
| 38. 스택과 힙: 메모리 이야기 (0) | 2026.09.01 |
| 36. 패턴 매칭의 즐거움 (0) | 2026.08.21 |
| 35. 매치(match) 연산자 기초 (0) | 2026.08.21 |
| 34. 반복문 탈출과 계속하기 (0) | 2026.08.21 |