Menu
CoddyTech

Работа с диапазонами

Часть раздела Основы путешествия по Rust на Coddy. Урок 65 из 75.

На этом уроке мы подробнее изучим, как работает range.

Базовый синтаксис диапазона:

  • start..end — создаёт диапазон от начального до конечного значения, не включая его
  • start..=end — создаёт диапазон от начального до конечного значения включительно
  • ..end — создаёт диапазон до end (не включая его) без начального значения. Цикл for не может его использовать, но с его помощью можно получить срез массива начиная с индекса 0: &arr[..3] — это первые 3 элемента
  • ..=end — создаёт диапазон до end (включая его) без начального значения и используется так же: &arr[..=3] — это первые 4 элемента
  • start.. — создаёт диапазон от start до бесконечности
  • .. — создаёт диапазон от минус бесконечности до плюс бесконечности

Диапазон в обратном порядке с помощью .rev():

  • (0..5).rev() — 4, 3, 2, 1, 0
  • (0..=5).rev() — 5, 4, 3, 2, 1, 0

Шаговые переходы с помощью .step_by(n):

  • (0..10).step_by(2) — 0, 2, 4, 6, 8
  • (0..10).rev().step_by(2) — 9, 7, 5, 3, 1

Например:

// Простой диапазон по возрастанию
for i in 0..5 { }
// Значения: 0, 1, 2, 3, 4
// Диапазон, включающий конечное значение
for i in 0..=5 { }
// Значения: 0, 1, 2, 3, 4, 5
// Обратный диапазон
for i in (0..5).rev() { }
// Значения: 4, 3, 2, 1, 0
// Шаг 2
for i in (0..10).step_by(2) { }
// Значения: 0, 2, 4, 6, 8
// Объедините обратный порядок и шаг
for i in (0..10).rev().step_by(3) { }
// Значения: 9, 6, 3, 0
challenge icon

Задание

Легко

Даны два массива: numbers1 и numbers2. Выведите по одной строке для каждого:

  • Array 1: начните с последней позиции массива numbers1 и двигайтесь назад с шагом в 3 позиции (индексы 25, 22, 19, ...), выводя значение в каждой позиции.
  • Array 2: пройдите по массиву numbers2 от последнего элемента к первому и выведите только значения, делящиеся на 4.

Выводите каждое значение в квадратных скобках, разделяя значения с помощью , и не добавляя ничего после последнего:

Array 1: [26], [23], [20], ...
Array 2: [36], [36], ...

Попробуйте сами

fn main() {
    let numbers1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26];
    let numbers2 = [17, 53, 24, 77, 84, 98, 24, 36, 89, 31, 36];
    print!("Array 1: ");
    // Напишите здесь свой код
    
    println!();
    print!("Array 2: ");
    // Напишите здесь свой код
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Rust