Rust Option은 if문보다 .map()이나 .unwrap_or()가 더 깔끔하다
페이지 정보

영삼이
본문
✅ Option
은 if문보다 .map()
이나 .unwrap_or()
가 더 깔끔하다
분기를 없애고 체인으로 처리하라
Option
타입은 흔히 match
나 if let
으로 처리한다:
let name: Option<String> = Some("영삼".to_string());
if let Some(n) = name {
println!("Hello, {}", n);
} else {
println!("이름 없음");
}
이렇게 쓰면 분기는 명확하지만,
단순한 로직도 길고 반복적인 코드가 된다.
✅ 체이닝으로 간결하게 처리
let name: Option<String> = Some("영삼".to_string());
println!("Hello, {}", name.unwrap_or("이름 없음".to_string()));
혹은 어떤 작업만 하고 싶다면:
name.as_ref().map(|n| println!("Hello, {}", n));
-
as_ref()
는 소유권을 넘기지 않고 참조만 사용 -
map()
은 값이 있을 때만 실행됨
정리
목적 | 추천 메서드 |
---|---|
기본값 사용 | unwrap_or() |
값이 있으면 변환 | map() |
값이 있으면 다른 Option 리턴 | and_then() |
값이 없으면 대체 | or_else() |
✔️ Option
은 분기문보다 메서드 체인으로 처리하는 게 더 효율적이다.
필요 이상으로 if
나 match
를 쓰지 않아도 된다.
- 이전글match 문은 강력하지만, 함수로 분리하면 더 읽기 쉬워진다 25.03.28
- 다음글&str 대신 String을 넘기면 쓸 수 없는 이유가 생긴다 25.03.28
댓글목록
등록된 댓글이 없습니다.