Rust Result를 리턴할 땐 ? 연산자를 적극적으로 써라
페이지 정보

영삼이
본문
✅ Result
를 리턴할 땐 ?
연산자를 적극적으로 써라
중첩된 match 없이 에러 처리를 단순화하라
Rust에서는 에러를 안전하게 처리하기 위해
모든 실패 가능 함수는 Result
를 리턴한다:
fn read_file(path: &str) -> Result<String, std::io::Error> {
let content = std::fs::read_to_string(path)?;
Ok(content)
}
❌ match
로 처리하면 복잡해진다
fn read_file(path: &str) -> Result<String, std::io::Error> {
let result = std::fs::read_to_string(path);
match result {
Ok(content) => Ok(content),
Err(e) => Err(e),
}
}
-
중복
-
가독성 저하
-
에러 처리 흐름이 드러나지 않음
✅ ?
연산자를 쓰면 코드가 깔끔해진다
fn read_file(path: &str) -> Result<String, std::io::Error> {
let content = std::fs::read_to_string(path)?;
Ok(content)
}
-
?
는 에러가 발생하면 바로 리턴 -
성공 시에는 unwrap처럼 값을 꺼냄
✔️ Result
를 다룰 땐
명시적인 match 대신 ?
연산자로 흐름을 단순하게 유지하라.
가독성, 유지보수성 모두 좋아진다.
- 이전글구조체 필드를 업데이트할 땐 ..기존 문법을 활용하라 25.03.28
- 다음글clone()은 쉽지만, 남발하면 성능이 떨어진다 25.03.28
댓글목록
등록된 댓글이 없습니다.