rect.area()p1.distance(&p2)호출부는 값이든 참조든 같은 점 문법을 사용합니다.
호출자는 value.method()처럼 쓰고, 컴파일러가 메서드의
self 수신자에 맞춰 빌림이나 역참조를 보정합니다.
메서드명 + 수신자 타입이 충분하면 필요한 &, &mut, *가 결정됩니다.
rect.area()p1.distance(&p2)호출부는 값이든 참조든 같은 점 문법을 사용합니다.
fn area(&self)fn push(&mut self)메서드 정의가 읽기, 변경, 소비 중 어느 동작인지 알려줍니다.
(&rect).area()(*boxed).area()필요한 참조와 역참조가 삽입되어 호출이 성립합니다.
&self
값을 읽기만 하므로 불변 참조로 빌립니다.
&mut self
호출 대상이 가변이어야 하며, 변경 가능한 참조가 필요합니다.
self
값을 소비하므로 호출 뒤 원래 인스턴스를 다시 사용할 수 없습니다.