Rust

트레이트 객체를 사용하여 다른 타입의 값 허용하기

8장에서 벡터의 제약사항 중 하나는 하나의 타입 요소만 보관할 수 있다는 점이라고 언급했습니다. 예제 7-9에서는 정수, 부동소수점, 문자를 담기 위한 배리언트를 가진 SpreadsheetCell 열거형으로 이를 해결했습니다.

공통 동작을 트레이트로 정의하고, 트레이트 객체로 서로 다른 타입을 같은 컬렉션에서 다루는 기준을 확인합니다.

1

공통된 동작을 위한 트레이트 정의하기

러스트는 상속 대신 공통 동작을 트레이트로 정의해 서로 다른 타입을 같은 인터페이스로 다룹니다.

예제 16-3: Draw 트레이트의 정의
2

트레이트 구현하기

그러면 트레이트 객체(trait object)를 담는 벡터를 정의할 수 있습니다.

SpreadsheetCell
3

트레이트 객체는 동적 디스패치를 수행합니다

트레이트 객체는 데이터와 동작을 묶어 런타임에 호출 대상을 결정합니다.

draw