我知道下面的代码有效:
// method 1
fn vec_loop(mut v: Vec<i32>) -> Vec<i32> {
v.iter().map(|x| x * 2).collect()
}
不过,我想知道是否有可能这样做:
// method 2
fn vec_loop(mut v: Vec<i32>) -> Vec<i32> {
for i in v.iter_mut() {
// TODO: Fill this up so that each element in the Vec `v` is multiplied by two.
}
v
}
到目前为止,我无法使用 iter_mut()
运行迭代。如果有人能够:
- 阐明如何以此方式运行代码。
- 解释方法1和方法2之间是否存在性能差异。