Работа с диапазонами
Часть раздела Fundamentals путешествия по Rust на Coddy — урок 65 из 75.
В этом уроке мы подробнее изучим, как работает range.
Базовый синтаксис диапазонов:
start..end- Создает диапазон от start до end (не включая конечный элемент)start..=end- Создает диапазон от start до end (включая конечный элемент)
..end- Создает диапазон от 0 до end (не включая)..=end- Создает диапазон от 0 до end (включая)
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Задание
ЛегкоСоздайте программу, которая начинается с двух массивов чисел и выводит для первого массива все числа в обратном порядке с шагом 3 по позициям массива, а для второго выводит все числа, кратные 4, в обратном порядке. Выведите в следующем формате:
Array 1: [1], [2], [3], ...
Array 2: [1], [2], [3], ...Шпаргалка
Синтаксис диапазонов в Rust:
start..end- Создает диапазон от start до end (не включая end)start..=end- Создает диапазон от start до end (включая end)..end- Создает диапазон от 0 до end (не включая end)..=end- Создает диапазон от 0 до end (включая end)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Попробуйте сами
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: ");
// Напишите свой код здесь
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел11Функции
Объявление функцийПараметры и аргументыВозвращаемые значенияМножественные возвращаемые значенияПовторение: функция SigmaПовторение: функция валидации14Итерация по массивам
Работа с диапазонамиУлучшенный цикл forЗаимствование в циклеОсновные операции с массивами3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический ввод