self를 받는 방식이 메서드의 읽기, 수정, 소비 의미를 정한다
impl 안의 함수는 첫 인자가 self 계열이면 메서드가 되고, self 없이 타입에 붙으면 연관 함수가 된다.
소유권 유지
가변 대여 필요
값 이동
인스턴스 없이 호출
| 구분 | 의미 | 판단 |
|---|---|---|
| area(&self) | 값 읽기 | rect 재사용 가능 |
| scale(&mut self) | 필드 변경 | mut 바인딩 필요 |
| into_inner(self) | 값 소비 | 호출 뒤 사용 불가 |
핵심 메서드 설계는 이름보다 receiver가 소유권 계약을 어떻게 드러내는지다.