如何获得结构数组中所有键的总和?

时间:2018-04-30 16:59:48

标签: arrays rust sum

我有这个结构:

struct MyStruct {
    myvalue: u32,
    yourvalue: u32,
}

如果我有a: Vec<MyStruct>,我怎样才能获得所有MyStruct.myvalue的总和?我正在寻找像a.iter.sum(sum of myvalue)这样的东西。

我知道我可以使用for循环执行此操作,但我希望能够使用一行代码执行此操作。

1 个答案:

答案 0 :(得分:6)

要在一行中对MyStruct.myvalue求和,您可以使用Iterator::mapIterator::sum

fn sum_myvalue(a: &[MyStruct]) -> u32 {
    a.iter().map(|s| s.myvalue).sum()
}

// Later on you can use this like so:
//
sum_myvalue(a);

另见: