rust

Rust:trait中 关联类型、泛型参数、默认参数混用

佐手、 提交于 2020-10-23 01:48:19
关联类型:是trait中的占位符。在内部约定一个特别的类型,和泛型似类(泛型是外部约定) 泛型参数:是指参数中,实现trait的对象类型是一个泛型类;即不特定的一类 默认参数:是指参数中,有实现trait的对象类型就是某一个特殊的类;即特定的一类 上代码: #[derive(Debug)] pub enum RunStrategy{ AAAA, BBBB, CCCC, } pub trait Strategy< T= RunStrategy> { //这个trait是针对带这个枚举类型的输入参数 type Output; // 内部约定一个类型 fn poll(&self) -> (Self::Output, T); } #[derive(Debug)] pub struct Strategy_aaaa{ code :String, } impl Strategy_aaaa{ pub fn default()-> Self{ Strategy_aaaa{code:"600036".to_string()} } } impl Strategy for Strategy_aaaa{ type Output = Strategy_aaaa; fn poll(&self) -> (Self::Output, RunStrategy){ let aaaa= Strategy_aaaa: