트레이트

트레이트로 동작 계약 만들기

트레이트는 여러 타입이 공유해야 할 메서드 집합을 이름 붙여, 제네릭 코드가 요구하는 동작을 명시합니다.

바운드 기준 제네릭 함수 안에서 summary처럼 특정 메서드를 호출하려면 T: Summary와 같은 트레이트 바운드가 필요합니다.

타입이나 트레이트 중 하나는 현재 크레이트에 있어야 구현할 수 있어 외부 코드의 충돌을 줄입니다.

trait 정의

필수 메서드 시그니처와 기본 구현을 함께 둘 수 있습니다.

impl

특정 타입이 트레이트 계약을 어떻게 만족하는지 작성합니다.

기본 구현

공통 동작을 제공하고 타입별로 필요한 부분만 재정의합니다.

where

바운드가 길어질 때 함수 시그니처를 읽기 좋게 정리합니다.

공통 동작 설계

구현 규칙
1
이름

여러 타입이 공유할 행위에 트레이트 이름을 붙입니다.

2
계약

호출자가 기대할 메서드와 반환 타입을 정의합니다.

3
제한

제네릭 함수가 필요한 동작만 바운드로 요구합니다.

트레이트는 상속보다 느슨하게 공통 동작을 묶고, 제네릭 코드의 요구사항을 명확한 타입 조건으로 바꿉니다.