Rust Debug 대신 Display를 구현하면 출력이 유연해진다
페이지 정보

영삼이
본문
✅ Debug
대신 Display
를 구현하면 출력이 유연해진다
포맷 제어가 필요할 땐
fmt::Display
가 정답이다
Rust에서 구조체를 출력하려면 보통 #[derive(Debug)]
을 쓴다:
#[derive(Debug)]
struct User {
name: String,
age: u8,
}
let user = User {
name: "영삼".to_string(),
age: 30,
};
println!("{:?}", user);
❌ 문제점
-
출력 형식이 **개발용(Debug)**에 맞춰져 있음
-
사용자에게 보여줄 용도로는 부적절한 경우 많음
-
포맷 커스터마이징 불가
✅ fmt::Display
직접 구현
use std::fmt;
impl fmt::Display for User {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{} ({}세)", self.name, self.age)
}
}
println!("{}", user); // 영삼 (30세)
-
출력 형식을 완전히 제어 가능
-
사용자용 출력에 적합
언제 Debug
, 언제 Display
?
목적 | 구현 Trait |
---|---|
개발 로그 출력 | Debug |
사용자용 포맷 | Display |
오류 메시지 | Display |
✔️ 구조체나 enum을 직접 출력할 일이 있다면,
Debug
만 쓰지 말고 Display도 꼭 구현하라.
표현력 있는 출력이 코드 완성도를 높인다.
- 이전글Drop은 정리만 하고 로직은 넣지 마라 25.03.28
- 다음글Cow를 쓰면 복사와 참조를 동시에 유연하게 처리할 수 있다 25.03.28
댓글목록
등록된 댓글이 없습니다.