我需要类似的东西:
fn my_convert<T, U>(v: &Vec<U>)->Vec<T>{
v.iter().map(|&t|t).collect()
}
Run Code Online (Sandbox Code Playgroud)
当然,我认为只有内置数字类型的向量可以传递给函数。
编译器告诉我需要为 Vec 提供 FromIterator 特征
该特征
std::iter::FromIterator<U>未针对 `std::vec::Vec 实现
然后,我添加了
impl<T, U> std::iter::FromIterator<U> for Vec<T>{
fn from_iter<I>(iter:I)->Self where I: IntoIterator<Item=U>{
Vec::<T>::new() // just for test
}
}
Run Code Online (Sandbox Code Playgroud)
std::iter::FromIterator<_>type 的特征的冲突实现std::vec::Vec<_>:注意:板条箱中的冲突实现alloc: - impl std::iter::FromIterator for std::vec::Vec;rustc(E0119)
众所周知,在C++中,这种转换是直接且直观的。我是 Rust 的初学者。我不知道如何定义上面这样的函数。我什至不知道它是否可以在 Rust 中实现,因为泛型类型特征的复杂性。
谢谢!
rust ×1