Метод iter
Метод iter возвращает итератор, который
последовательно выдаёт ссылки на элементы среза.
Он не принимает параметров и не изменяет исходные
данные. Каждый элемент итератора имеет тип
&T, где T - тип элементов среза.
Метод удобен для обхода среза в цикле for,
а также для использования адаптеров итераторов,
таких как map, filter и sum.
Синтаксис
slice.iter()
Пример
Давайте получим итератор по срезу и выведем каждый его элемент в цикле:
fn main()
{
let arr = [1, 2, 3, 4, 5];
let slice = &arr[..];
for item in slice.iter() {
println!("{}", item);
}
}
Результат выполнения кода:
1
2
3
4
5
Пример
Давайте соберём все элементы среза в вектор
с помощью метода collect:
fn main()
{
let arr = ["a", "b", "c", "d", "e"];
let slice = &arr[..];
let res: Vec<&&str> = slice.iter().collect();
println!("{:?}", res);
}
Результат выполнения кода:
["a", "b", "c", "d", "e"]
Пример
Давайте найдём сумму всех элементов среза,
используя адаптер sum:
fn main()
{
let arr = [1, 2, 3, 4, 5];
let slice = &arr[..];
let res: i32 = slice.iter().sum();
println!("{}", res);
}
Результат выполнения кода:
15