Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
295 of 1246 menu
◀ ▶

Метод split

Метод split класса slice возвращает итератор, который разбивает срез на части по заданному разделителю. Разделителем может быть значение, для которого элемент среза удовлетворяет сравнению, или замыкание-предикат. Метод возвращает итератор Split, элементы которого имеют тип &[T].

Параметром метод принимает разделитель: это может быть ссылка на значение, с которым сравнивается каждый элемент среза, либо замыкание, принимающее ссылку на элемент и возвращающее bool.

Синтаксис

slice.split(&value) slice.split(|element| condition)

Пример

Давайте разобьем срез [1, 2, 3, 0, 4, 5] по разделителю 0 и выведем полученные части:

fn main() { let arr = [1, 2, 3, 0, 4, 5]; let res: Vec<&[i32]> = arr.split(&0).collect(); println!("{:?}", res); }

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

[[1, 2, 3], [4, 5]]

Пример

Давайте разобьем срез ["a", "b", "c", "d", "e"] по разделителю "c":

fn main() { let arr = ["a", "b", "c", "d", "e"]; let res: Vec<&[&str]> = arr.split(&"c").collect(); println!("{:?}", res); }

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

[["a", "b"], ["d", "e"]]

Пример

Давайте разобьем срез [1, 2, 3, 4, 5, 6] по предикату: элемент является четным числом:

fn main() { let arr = [1, 2, 3, 4, 5, 6]; let res: Vec<&[i32]> = arr.split(|x| x % 2 == 0).collect(); println!("{:?}", res); }

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

[[1], [3], [5], []]

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

  • метод split_at,
    который делит срез на две части по индексу
  • метод split_first,
    который отделяет первый элемент среза от остатка
  • метод rsplit,
    который разбивает срез справа налево
  • метод chunks,
    который разбивает срез на куски фиксированной длины
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить