METHOD MAP
메서드와 연관 함수는 self 유무로 구분한다
인스턴스를 받아 동작하는 함수인지, 타입 이름으로 호출하는 생성자 성격의 함수인지 나누면 impl 블록의 역할이 분명해집니다.
&self
Self::new
impl Rectangle
인스턴스 상태를 읽는다
area(&self)처럼 값을 소유하지 않고 빌려 읽는 동작은 메서드로 둡니다.
수정은 &mut self
필드를 바꿔야 한다면 가변 참조를 받아 호출자가 빌림 규칙을 지키게 합니다.
연관 함수는 타입에서 시작
square(size)처럼 self를 받지 않으면 Rectangle::square 형태로 호출합니다.
01 · 읽기
&self로 상태를 봅니다.
02 · 수정
&mut self로 바꿉니다.
03 · 소비
self로 소유권을 가져갑니다.
04 · 생성
Self를 반환합니다.
여러 impl 블록은 가능하지만, 같은 책임의 메서드는 가까이 두면 타입의 API를 읽기 쉽습니다.