Сокращенная запись для массивов
Часть раздела Основы путешествия по Ruby на Coddy — урок 64 из 88.
Ruby предоставляет удобные сокращения для создания массивов, особенно при работе со строками или последовательными числами. Эти сокращения экономят время и делают ваш код чище.
Синтаксис %w создает массив строк без необходимости использования кавычек или запятых:
fruits = %w[apple banana cherry]
puts fruits # Выводит: apple, banana, cherryЭто эквивалентно записи ["apple", "banana", "cherry"], но гораздо лаконичнее. Каждое слово, разделенное пробелом, становится отдельным элементом.
Для массивов символов используйте %i:
statuses = %i[pending active completed]
puts statuses # Выводит: pending, active, completedЧтобы создать массивы последовательных чисел, вы можете преобразовать диапазон в массив с помощью to_a:
numbers = (1..5).to_a
puts numbers # Выводит: 1, 2, 3, 4, 5Вы также можете использовать оператор splat * внутри квадратных скобок массива:
countdown = [*5..10]
puts countdown # Выводит: 5, 6, 7, 8, 9, 10Эти сокращения особенно полезны, когда вам нужно быстро определить список известных значений без визуального нагромождения кавычек и запятых.
Задание
ЛегкоПрочитайте два входных значения:
- Одна строка слов, разделенных пробелами (например,
red green blue yellow) - Два целых числа, разделенных запятой, представляющих диапазон (например,
3,7)
Выполните следующие задачи:
- Создайте массив строк из первого входного значения, используя синтаксис
split. Поскольку входные данные уже являются строкой, вам нужно сначала использоватьsplit, чтобы преобразовать их в массив, а затем продемонстрировать использование%w, создав отдельный массив со словамиalpha,beta,gamma. - Создайте массив символов, используя
%iсо значениямиstart,middle,end. - Создайте массив последовательных чисел из диапазона, указанного во втором входном значении, используя оператор splat
*внутри квадратных скобок массива.
Выведите следующее на отдельных строках:
- Каждый элемент массива слов из входных данных
- Пустую строку
- Каждый элемент массива
%w(alpha, beta, gamma) - Пустую строку
- Каждый элемент массива символов
%i - Пустую строку
- Каждый элемент массива диапазона чисел
Например, если входные данные — red green blue и 1,5, вывод должен быть следующим:
red
green
blue
alpha
beta
gamma
start
middle
end
1
2
3
4
5Если входные данные — sun moon star и 10,13, вывод должен быть следующим:
sun
moon
star
alpha
beta
gamma
start
middle
end
10
11
12
13Шпаргалка
Ruby предоставляет сокращенные способы создания массивов, которые делают код чище и лаконичнее.
Синтаксис %w создает массив строк без кавычек и запятых:
fruits = %w[apple banana cherry]
# Эквивалентно ["apple", "banana", "cherry"]Синтаксис %i создает массив символов:
statuses = %i[pending active completed]
# Эквивалентно [:pending, :active, :completed]Преобразуйте диапазон в массив с помощью to_a:
numbers = (1..5).to_a
# Создает [1, 2, 3, 4, 5]Используйте оператор splat * внутри квадратных скобок массива для создания массивов из диапазонов:
countdown = [*5..10]
# Создает [5, 6, 7, 8, 9, 10]Попробуйте сами
# Прочитать слова, разделенные пробелом
words_input = gets.chomp
# Прочитать диапазон (два целых числа, разделенных запятой)
range_input = gets.chomp
# TODO: Напишите ваш код ниже
# 1. Создайте массив из words_input, используя split
# 2. Создайте массив %w с alpha, beta, gamma
# 3. Создайте массив %i с start, middle, end
# 4. Разберите диапазон и создайте массив, используя оператор splat (*)
# Выведите элементы каждого массива на отдельных строках с пустыми строками между массивамиВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 3Логические операторы. Часть 47Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Продвинутая работа с массивами
Срезы массивов через диапазоныСрезы массивов через индексыОператоры массивовМетод include?2Переменные и типы данных
Числа и переменныеСтроковый тип данныхЛогический тип данныхТип данных SymbolПроверка типов данныхПравила именованияПовторение: создание переменных5Принятие решений
Оператор IfКонструкция If - ElseПовторение — Простой калькуляторВложенные конструкции If - ElseОператор Unless8Циклы
Цикл For с диапазонамиЦикл WhileОператор BreakОператор NextПовторение: ФакториалЦикл TimesЦикл UntilВложенные циклыПовторение: Динамический ввод11Массивы
Создание массивовДоступ к элементам массиваИзменение массивовМетоды массивовПовторение — Массив произведенийПовторение — Перевернутый массивСокращенная запись для массивов3Операторы. Часть 1
Арифметические операторыОператор остатка от деленияСокращенная арифметикаИтоги: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод с помощью putsВывод с помощью print и pВывод с переменнымиВвод с помощью getsМетод chompПреобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложь