소개
이 랩에서는 Rust 프로그래밍 언어의 구조체 (structure) 를 탐구해 보겠습니다. struct 키워드를 사용하여 생성할 수 있는 구조체는 튜플 구조체 (tuple struct), 클래식 C 구조체 (classic C struct), 그리고 유닛 구조체 (unit struct) 의 세 가지 유형이 있습니다. 튜플 구조체는 본질적으로 명명된 튜플이며, C 구조체는 C 프로그래밍에서 발견되는 전통적인 구조체이고, 유닛 구조체는 필드가 없으며 제네릭 (generics) 에 유용합니다. name과 age 필드를 가진 Person과 같이 여러 필드를 가진 구조체를 정의할 수 있습니다. 또한, 구조체는 다른 구조체의 필드로 재사용될 수 있습니다. 예를 들어, 왼쪽 상단과 오른쪽 하단 모서리를 나타내는 두 개의 Point 구조체로 구성된 Rectangle의 예시를 볼 수 있습니다. 필드 초기화 축약 (field init shorthand) 을 사용하여 구조체를 초기화하고, 점 표기법 (dot notation) 을 사용하여 해당 필드에 접근할 수 있습니다. let 바인딩을 사용하여 구조체를 분해 (destructure) 하는 것도 가능합니다. 또한, 이 랩에서는 두 가지 활동을 제공합니다. 중첩 분해 (nested destructuring) 를 사용하여 Rectangle의 면적을 계산하는 함수 rect_area를 생성하고, Point와 f32를 인수로 받아 해당 지점에 왼쪽 상단 모서리가 있고 너비와 높이가 f32에 해당하는 Rectangle을 반환하는 함수 square를 생성하는 것입니다.
참고: 랩에서 파일 이름을 지정하지 않은 경우, 원하는 파일 이름을 사용할 수 있습니다. 예를 들어,
main.rs를 사용하고rustc main.rs && ./main으로 컴파일하고 실행할 수 있습니다.