개발 지식

개발 지식

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

페이지 정보

profile_image
영삼이
0건 123회 25-03-28 15:15

본문

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

분기를 없애고 체인으로 처리하라


Option 타입은 흔히 matchif 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은 분기문보다 메서드 체인으로 처리하는 게 더 효율적이다.
필요 이상으로 ifmatch를 쓰지 않아도 된다.

댓글목록

등록된 댓글이 없습니다.