Rust 数组元素求和:使用 iter 方法替代双层循环
是的,可以使用'iter()'方法来实现。以下是一种可能的实现方式:
fn main() {
let a = [1, 2, 3, 4, 5];
let b: Vec<_> = a.iter().zip(a.iter().skip(1)).map(|(&x, &y)| x + y).collect();
println!('{:?}', b); // 输出 [3, 5, 7, 9]
}
在这个例子中,我们使用'iter()'方法生成'a'数组的迭代器,然后使用'zip()'方法将两个迭代器进行配对,再使用'map()'方法对配对后的元素进行求和操作。最后,我们使用'collect()'方法将结果收集到一个新的'Vec'中。
注意,这个例子中使用了'skip(1)'方法来跳过第一个元素,因为在生成'b'数组时,每个元素都是相邻两个元素的和。
原文地址: http://www.cveoy.top/t/topic/pb44 著作权归作者所有。请勿转载和采集!