РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
645 of 1245 menu

Метод sum

Метод sum проходит по всем элементам итератора, складывает их между собой и возвращает итоговую сумму. Он не принимает параметров, а тип возвращаемого значения определяется контекстом: метод можно собрать в число, строку или любую другую структуру, реализующую трейт Sum. Чаще всего метод применяют для чисел и строк.

Синтаксис

iter.sum::<T>()

Пример

Давайте сложим все числа вектора vec![1, 2, 3, 4, 5]:

fn main() { let res: i32 = vec![1, 2, 3, 4, 5].iter().sum(); println!("{}", res); }

Результат выполнения кода:

15

Пример

Давайте сложим все числа, полученные после умножения элементов вектора на два:

fn main() { let res: i32 = vec![1, 2, 3, 4, 5].iter().map(|x| x * 2).sum(); println!("{}", res); }

Результат выполнения кода:

30

Пример

Метод sum умеет складывать и строки. Давайте соберём одну строку из набора строковых срезов:

fn main() { let res: String = vec!["a", "b", "c", "d", "e"].iter().sum(); println!("{}", res); }

Результат выполнения кода:

"abcde"

Пример

Если итератор пуст, метод sum вернёт нулевое значение для выбранного типа:

fn main() { let res: i32 = Vec::<i32>::new().iter().sum(); println!("{}", res); }

Результат выполнения кода:

0

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

  • метод product,
    который перемножает все элементы итератора
  • метод fold,
    который сворачивает итератор в одно значение с накоплением
  • метод reduce,
    который сворачивает итератор без начального значения
  • метод collect,
    который собирает элементы итератора в коллекцию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить