Метод rev
Метод rev создаёт новый итератор, который
выдаёт элементы исходного итератора в обратном
порядке. Метод не принимает параметров и доступен
только для итераторов, реализующих трейт
DoubleEndedIterator. Это означает, что
исходный итератор должен уметь выдавать элементы
как с начала, так и с конца.
Метод возвращает новый итератор типа
Rev, который при вызове next
отдаёт элементы в обратном порядке. Исходный
итератор при этом потребляется.
Синтаксис
iterator.rev()
Пример
Давайте создадим вектор чисел и выведем его
элементы в обратном порядке с помощью метода
rev:
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
for el in vec.iter().rev() {
println!("{}", el);
}
}
Результат выполнения кода:
5
4
3
2
1
Пример
Давайте соберём элементы вектора в новый вектор
в обратном порядке с помощью метода rev
и метода collect:
fn main()
{
let vec = vec![1, 2, 3, 4, 5];
let res: Vec<i32> = vec.iter().rev().cloned().collect();
println!("{:?}", res);
}
Результат выполнения кода:
[5, 4, 3, 2, 1]
Пример
Давайте выведем символы строки в обратном порядке
с помощью метода rev:
fn main()
{
let s = "abcde";
for ch in s.chars().rev() {
println!("{}", ch);
}
}
Результат выполнения кода:
e
d
c
b
a
Смотрите также
-
трейт
DoubleEndedIterator,
который позволяет итератору выдавать элементы с конца -
метод
next,
который возвращает следующий элемент итератора -
метод
last,
который возвращает последний элемент итератора -
метод
cycle,
который бесконечно повторяет элементы итератора