Rust 转换向量<;T>;至Vec<;U>;何时开始<;T>;你有空吗

Rust 转换向量<;T>;至Vec<;U>;何时开始<;T>;你有空吗,rust,type-conversion,traits,Rust,Type Conversion,Traits,我已经从for U实现了From,并希望我可以使用Vec调用Vec::extend。相反,我得到了预期的T,得到了U。解决这个问题最惯用的方法是什么 structu; 结构T; 从为U执行的impl{ fn from(_other:T)->Self{ U } } fn main(){ 让mut v:Vec=Vec::new(); 让其他:Vec=Vec::new(); v、 扩展(other.into_iter()); } error[E0271]:类型不匹配解决`::Item==U` -->

我已经从for U实现了
From
,并希望我可以使用
Vec
调用
Vec::extend
。相反,我得到了
预期的T,得到了U
。解决这个问题最惯用的方法是什么

structu;
结构T;
从为U执行的impl{
fn from(_other:T)->Self{
U
}
}
fn main(){
让mut v:Vec=Vec::new();
让其他:Vec=Vec::new();
v、 扩展(other.into_iter());
}
error[E0271]:类型不匹配解决`::Item==U`
-->src/main.rs:14:7
|
14 | v.延伸(其他延伸到| iter());
|^^^^应为结构“T”,找到结构“U”`
|
=注意:应为'T'类型`
找到'U'型`
因为需要迭代器:

fn extend<T: IntoIterator<Item = A>>(&mut self, iter: T);
在Rust中,类型转换大多是显式的。我认为只有在使用
操作符时才会隐式调用
From::From
v.extend(other.into_iter().map(From::from));