RUST · ADVANCED TRAITS

트레이트 표현력이 필요한 순간

기본 트레이트 구현만으로 부족할 때, 문제의 모양에 맞는 기능을 고르면 타입 경계가 더 분명해집니다.

선택 기준
출력 타입 고정

연관 타입

구현마다 하나의 결과 타입을 정하고 싶다면 type Item처럼 트레이트 안에 이름을 둡니다.

기본 조합

기본 제네릭 타입

대부분은 Self로 충분하지만, 필요할 때만 다른 오른쪽 피연산자를 허용합니다.

이름 충돌

완전 정규 문법

같은 메서드 이름이 여럿이면 <Type as Trait> 형태로 어느 구현인지 지정합니다.

상위 요구

슈퍼트레이트와 뉴타입

기능을 조합하거나 고아 규칙을 우회해야 할 때 래퍼 타입으로 우리 쪽 구현 지점을 만듭니다.

선택 순서

결과가 하나인가?연관 타입
기본값이 있는가?기본 제네릭 타입
호출 대상이 모호한가?완전 정규 문법
외부 타입인가?뉴타입 래퍼