Rust enum에 메서드를 구현하면 로직이 훨씬 깔끔해진다
페이지 정보

영삼이
본문
✅ enum
에 메서드를 구현하면 로직이 훨씬 깔끔해진다
match로 분기하지 말고 메서드로 행동을 넣어라
Rust에서 enum
은 상태를 표현할 때 자주 쓰인다:
enum Status {
Ok,
NotFound,
Error(u16),
}
❌ 모든 동작을 match로 처리하면 분산된다
match status {
Status::Ok => println!("정상"),
Status::NotFound => println!("없음"),
Status::Error(code) => println!("에러 코드: {}", code),
}
-
어디서든 match를 써야 하고
-
동작과 데이터가 분리됨
✅ 메서드로 동작을 내부에 넣자
impl Status {
fn message(&self) -> String {
match self {
Status::Ok => "정상".to_string(),
Status::NotFound => "없음".to_string(),
Status::Error(code) => format!("에러 코드: {}", code),
}
}
}
println!("{}", status.message());
-
상태별 로직이 안에 응집됨
-
밖에서는 단순히 메서드만 호출하면 됨
✔️ enum
은 단순한 분기용이 아니라
행동(메서드)을 함께 담는 타입으로 쓰는 게 좋다.
데이터와 로직을 함께 설계하라.
- 이전글iterator 체인은 길어져도 가독성 유지할 수 있다 25.03.28
- 다음글구조체 필드를 업데이트할 땐 ..기존 문법을 활용하라 25.03.28
댓글목록
등록된 댓글이 없습니다.