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 분리

여러 impl 블록은 가능하지만, 같은 책임의 메서드는 가까이 두면 타입의 API를 읽기 쉽습니다.