有没有办法结合多个特征来定义新的特征?

Big*_*lon 20 rust

有没有办法结合多个特征(通过继承?)来定义一个新的特征?我正在寻找像C++中的概念:

auto concept newConcept<typename T> : concept1<T>, concept2<T>, concept3<T> {};
Run Code Online (Sandbox Code Playgroud)

假设我想创建一个继承自的新特征Clone,Default以及其他一些特征,那可能吗?

小智 40

是的!

trait NewTrait: Clone + Default + OtherTraits {}
impl<T> NewTrait for T where T: Clone + Default + OtherTraits {}
Run Code Online (Sandbox Code Playgroud)

  • 您可以按照http://stackoverflow.com/questions/30291584/macro-for-defining-trait-aliases中的描述编写宏trait_alias (2认同)