dyn Trait

러스트의 트레잇 객체 구문은 정말 후회되는 것 중 하나입니다. 만약 Foo라는 트레잇이 있다할 때 이건 트레잇 객체입니다.

Box<Foo>

그러나, 만약 Foo가 구조체라면 이것은 Box<T>안에 위치한 보통의 구조체입니다. 언어를 설계할 때 트레잇과 구조체가 유사한 게 좋을 것이라 생각했습니다만 사용해 보니 혼란스럽다는 게 드러났습니다. Box<Trait>의 경우만이 아닌데 impl SomeTrait for SomeOtherTrait 또한 기술적으로 유효한 구문이지만 대신에 impl<T> SomeTrait for T where T: SomeOtherTrait라고 작성하고 싶을 것입니다. impl SomeTrait와 같이