&T에서 &U
T: Deref<Target = U>
읽기 참조는 안쪽 읽기 참조로 자동 변환될 수 있습니다.
컴파일러는 함수와 메서드 호출에서 필요한 참조 타입을 찾을 때
Deref와 DerefMut 구현을 따라갑니다.
&T에서 &UT: Deref<Target = U>
읽기 참조는 안쪽 읽기 참조로 자동 변환될 수 있습니다.
&mut T에서 &mut UT: DerefMut<Target = U>
유일한 가변 대여가 유지될 때 안쪽 가변 참조로 이어집니다.
&mut T에서 &UT: Deref<Target = U>
가변 대여를 읽기 전용으로 쓰는 것은 대여 규칙을 깨지 않습니다.
사용자는 hello(&m)처럼 자연스러운 참조를 넘깁니다.
함수가 기대하는 타입과 실제 인자 타입이 같은지 확인합니다.
필요한 만큼 deref를 적용하되 횟수는 컴파일 타임에 정합니다.
맞는 참조 타입을 얻으면 런타임 비용 없이 그 호출로 컴파일됩니다.
Deref
스마트 포인터를 읽기 참조처럼 다룹니다.
DerefMut
가변 참조의 역참조 동작을 확장합니다.
금지 방향불변 참조를 가변 참조로 바꾸는 변환은 없습니다.