Deref — 역참조 연산을 정의하는 트레이트
Deref — 역참조 연산을 정의하는 트레이트
Deref는 * 역참조 연산자와 자동 역참조(deref coercion) 를 정의하는 트레이트예요. 스마트 포인터 타입들이 이를 구현해서 기반 타입처럼 쓰이게 해줘요.
출처: Rust 공식 문서
본문
pub trait Deref {
type Target: ?Sized;
// Required method
fn deref(&self) -> &Self::Target;
}
예를 들어 Box<T>는 Target = T로 구현해서 box.method()이 T의 메서드를 쓸 수 있게 돼요. Clone의 슈퍼트레이트 패턴과 달리, Deref는 기본적으로 Type: Deref<Target=...>의 암시적 변환을 제공해 코드를 간결하게 해줘요. 과도하게 쓰면 혼란을 줄 수 있어 Deref에서는 메서드 호출 외의 사용을 자제하는 게 권장돼요.