问题描述
说我有一个像这样的结构:
struct A {
field0: u32,field1: Vec<B>,}
struct B {
field0: f64,field1: String,field2: Vec<C>,}
struct C {
field0: Vec<u8>,field1: bool,}
我想为输出输出带有Vec的字段的每个结构实现特征。
// snip
trait MyVec<T> {
fn myvec(&self) -> Vec<T>;
}
impl MyVec<T> for A {
fn myvec(&self) -> Vec<T> { // return Vec<B>
&self.field1
}
}
impl MyVec<T> for B {
fn myvec(&self) -> Vec<T> { // return Vec<C>
&self.field2
}
}
impl MyVec<T> for C {
fn myvec(&self) -> Vec<T> { // return Vec<u8>
&self.field0
}
}
但是编译器抱怨expected type parameter T but found struct B
。如何正确执行此操作?
很抱歉,如果这是一个愚蠢的问题,我对Rust还是很陌生,不了解泛型或特征。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)