Метод rsplit
Метод rsplit разбивает срез на части,
двигаясь от конца к началу. Он возвращает
итератор, который выдаёт подотрезки (срезы),
разделённые указанным разделителем.
Параметром метод принимает разделитель,
по которому нужно разбивать срез.
В отличие от метода split, который
идёт слева направо, rsplit начинает
с правого конца среза.
Синтаксис
slice.rsplit(separator)
Пример
Давайте разобьём срез [1, 2, 3, 2, 1]
по значению 2 и соберём результат
в вектор:
fn main()
{
let res: Vec<_> = [1, 2, 3, 2, 1].rsplit(|&x| x == 2).collect();
println!("{:?}", res);
}
Результат выполнения кода:
[[1], [3], [1]]
Пример
Давайте посмотрим, в каком порядке
метод rsplit обходит элементы.
Выведем каждую часть по отдельности:
fn main()
{
for part in [1, 2, 3, 2, 1].rsplit(|&x| x == 2)
{
println!("{:?}", part);
}
}
Результат выполнения кода:
[1]
[3]
[1]
Смотрите также
-
метод
split,
который разбивает срез слева направо по разделителю -
метод
split_at,
который делит срез на две части по индексу -
метод
split_first,
который отделяет первый элемент среза от остатка -
метод
slice,
который представляет класс срезов и его методы