이름 있는 필드
struct User { email: String }user.email처럼 각 값의 이름이 읽기 계약일 때 선택한다.
세 형태는 모두 새 타입을 만든다. 필드 이름이 의미를 전달하는지, 타입 이름만 필요한지, 저장할 상태가 있는지부터 고른다.
struct User { email: String }user.email처럼 각 값의 이름이 읽기 계약일 때 선택한다.
struct Point(i32, i32);필드 이름은 불필요하지만 같은 원시 튜플과 다른 명목 타입이 필요할 때 쓴다.
struct AlwaysEqual;저장 필드 없이 타입의 존재와 trait 구현 지점만 필요할 때 쓴다.
타입이 허용할 상태를 정의
순서는 자유, 누락·중복은 컴파일 오류
User { email, active }
..user1은 마지막, 비-Copy 필드는 이동
String인스턴스가 데이터를 소유해 독립적으로 보관한다.
&'a str외부 값을 빌리므로 구조체에도 라이프타임 관계가 필요하다.
Copy 필드업데이트에서 복사된다. 이동된 필드가 있으면 원본 전체 재사용은 막힌다.
컴파일 진단: unknown·missing field는 정의와 생성식의 불일치, mismatched types는 필드 타입 오류, E0382는 구조체 업데이트 뒤 이동된 값을 다시 썼다는 신호다.