Сокращенная запись для массивов
Часть раздела Основы путешествия по 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Попробуйте сами
# Прочитать слова, разделенные пробелом
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Преобразование типовИтоги — Калькулятор возрастаИтоги — Истина или ложьПотренируйтесь самостоятельно: Онлайн-компилятор Ruby