Eli*_*off 8 indexing fold rust
在Ruby中,如果我有一个数组,a = [1, 2, 3, 4, 5]并且我希望得到每个元素的总和乘以它的索引
a.each.with_index.inject(0) {|s,(i,j)| s + i*j}
Run Code Online (Sandbox Code Playgroud)
有没有惯用的方法在Rust做同样的事情?到目前为止,我有
a.into_iter().fold(0, |x, i| x + i)
Run Code Online (Sandbox Code Playgroud)
但这并没有考虑到索引,我无法找到一种方法来让它考虑索引.这是可能的,如果是的话,怎么样?
Sim*_*ead 17
你可以链接它enumerate:
fn main() {
let a = [1, 2, 3, 4, 5];
let b = a.into_iter().enumerate().fold(0, |s, (i, j)| s + i * j);
println!("{:?}", b); // Prints 40
}
Run Code Online (Sandbox Code Playgroud)