Traits
트레이트는 여러 타입들간에 공통적으로 동작하는 인터페이스로
- 함수나 메서드
- 타입
- 상수 로 구성된다.
트레이트의 상당수는 어떤 기능이나 작동을 의미한다고 한다.
예1
예를 들어 print 문서에도 나와있는 std::fmt::Display
(스탠다드 라이브러리, 포멧 모듈, 디스플레이 트레이트) 트레이트는 출력되기 위해 필요한 트레이트이다. 프린트로 사용하고 싶다면 디스플레이나 디버그 트레이트를 구현해야한다.
예2
#[allow(unused_variables)]
함수 위에 위와같은 어노테이션?을 추가할 수 있는데 unused_variables
트레이트를 허용하는 어노테이션으로 해당 함수의 블럭안에서 사용되지 않는 함수가 있어도 컴파일러가 경고를 띄워주지 않는 기능을 한다.
하스켈
하스켈에서는 타입클래스라는 이름으로 동일한 역할을 한다고 한다.