Rectangle 흐름

사각형 예제는 값을 타입으로 묶고, 계산과 검증을 이어 붙인다

widthheight를 구조체 필드로 고정하면 함수 호출, 디버그 출력, 이후 메서드 리팩터링까지 같은 모델 위에서 설명할 수 있다.

1

데이터 모델링

서로 떨어진 숫자를 Rectangle 타입 안의 이름 있는 필드로 묶는다.

struct Rectangle {
  width: u32,
  height: u32,
}
2

인스턴스 생성

실제 값은 rect1에 담고, 필드 이름으로 어떤 수치인지 드러낸다.

let rect1 = Rectangle {
  width: 30,
  height: 50,
};
3

메서드/계산

계산 로직은 구조체 참조를 받아 필드 이름으로 넓이를 구한다.

fn area(rect: &Rectangle) -> u32 {
  rect.width * rect.height
}
4

디버그 검증

Debug를 파생하면 필드 값과 계산 전후 상태를 출력으로 확인한다.

#[derive(Debug)]
println!("{:?}", rect1);

핵심은 데이터의 의미를 타입에 남기는 것

튜플 인덱스를 기억하는 코드에서 벗어나면, 다음 단계인 메서드 정의도 자연스럽게 Rectangle 중심으로 이동한다.

named fields borrow Debug method next