method receiver

self를 받는 방식이 메서드의 읽기, 수정, 소비 의미를 정한다

impl 안의 함수는 첫 인자가 self 계열이면 메서드가 되고, self 없이 타입에 붙으면 연관 함수가 된다.

&self읽기

소유권 유지

&mut self수정

가변 대여 필요

self소비

값 이동

Self::new연관 함수

인스턴스 없이 호출

구분의미판단
area(&self)값 읽기rect 재사용 가능
scale(&mut self)필드 변경mut 바인딩 필요
into_inner(self)값 소비호출 뒤 사용 불가

핵심 메서드 설계는 이름보다 receiver가 소유권 계약을 어떻게 드러내는지다.