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

Метод rotate_right

Метод rotate_right выполняет циклический сдвиг элементов среза вправо. Параметром метод принимает количество позиций mid, на которое нужно сдвинуть элементы. Элементы, вышедшие за правую границу среза, переносятся в его начало. Метод изменяет срез на месте и не возвращает значения.

Синтаксис

slice.rotate_right(mid)

Пример

Давайте сдвинем элементы среза [1, 2, 3, 4, 5] вправо на две позиции:

fn main() { let mut arr = [1, 2, 3, 4, 5]; arr.rotate_right(2); println!("{:?}", arr); }

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

[4, 5, 1, 2, 3]

Пример

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

fn main() { let mut arr = [1, 2, 3, 4, 5]; arr.rotate_right(1); println!("{:?}", arr); }

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

[5, 1, 2, 3, 4]

Пример

Если количество позиций равно длине среза, порядок элементов не изменится. Давайте проверим это на срезе [1, 2, 3, 4, 5]:

fn main() { let mut arr = [1, 2, 3, 4, 5]; arr.rotate_right(5); println!("{:?}", arr); }

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

[1, 2, 3, 4, 5]

Пример

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

fn main() { let mut arr = [1, 2, 3, 4, 5]; arr.rotate_right(7); println!("{:?}", arr); }

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

[4, 5, 1, 2, 3]

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

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