deref coercion

Deref coercion은 참조 타입을 필요한 인자 타입까지 단계적으로 맞춘다

함수가 &str을 원할 때 &String이 들어오면 컴파일러가 deref를 삽입해 참조 대상을 좁힌다.

01&String

호출자가 넘긴 참조

02Deref<Target=str>

컴파일러가 deref 삽입

03&str

함수 인자 타입과 일치

04call

명시 변환 없이 호출

구분의미판단
&T to &UT: Deref<Target=U>읽기 참조 변환
&mut T to &mut UDerefMut수정 참조 변환
남용 주의암시적 변환이 과하면API 경계가 흐려짐

핵심 Deref coercion은 소유권 이동이 아니라 참조 대상 타입을 맞추는 암시 변환이다.