Метод for_each
Метод for_each применяет переданную функцию
к каждому элементу итератора. Параметром метод
принимает замыкание, которое вызывается для каждого
элемента последовательности. Метод не возвращает
значения и используется для выполнения побочных
эффектов, таких как вывод на экран, изменение
внешних переменных или запись в файл.
Синтаксис
iterator.for_each(f)
Пример
Давайте применим метод for_each к вектору
чисел и выведем каждый элемент на экран:
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
vec.iter().for_each(|x| println!("{}", x));
}
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте с помощью метода for_each найдём
сумму всех элементов вектора, изменяя внешнюю
переменную:
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
let mut sum = 0;
vec.iter().for_each(|x| sum += x);
println!("{}", sum);
}
Результат выполнения кода:
15
Пример
Давайте применим метод for_each к вектору
строк и выведем каждую строку в верхнем регистре:
fn main()
{
let vec = vec!["a", "b", "c", "d", "e"];
vec.iter().for_each(|x| println!("{}", x.to_uppercase()));
}
Результат выполнения кода:
"A"
"B"
"C"
"D"
"E"
Смотрите также
-
метод
map,
который преобразует каждый элемент итератора -
метод
filter,
который оставляет только элементы, подходящие под условие -
метод
fold,
который сворачивает итератор в одно значение -
метод
try_for_each,
который применяет функцию с возможностью обработки ошибок