Как вы можете получить сумму всех ключей в массиве структур? - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть такая структура:

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

Если у меня есть a: Vec<MyStruct>, как я могу получить сумму всех MyStruct.myvalue? Я ищу что-то вроде a.iter.sum(sum of myvalue).

Я знаю, что могу сделать это с помощью цикла for, но я бы хотел сделать это с помощью одной строки кода.

1 Ответ

0 голосов
/ 30 апреля 2018

Для суммирования MyStruct.myvalue в одной строке вы можете использовать Iterator::map и Iterator::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);

Смотри также:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...