Menu
Coddy logo textTech

Сокращенная запись для массивов

Часть раздела Основы путешествия по 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

Эти сокращения особенно полезны, когда вам нужно быстро определить список известных значений без визуального нагромождения кавычек и запятых.

challenge icon

Задание

Легко

Прочитайте два входных значения:

  1. Одна строка слов, разделенных пробелами (например, red green blue yellow)
  2. Два целых числа, разделенных запятой, представляющих диапазон (например, 3,7)

Выполните следующие задачи:

  1. Создайте массив строк из первого входного значения, используя синтаксис split. Поскольку входные данные уже являются строкой, вам нужно сначала использовать split, чтобы преобразовать их в массив, а затем продемонстрировать использование %w, создав отдельный массив со словами alpha, beta, gamma.
  2. Создайте массив символов, используя %i со значениями start, middle, end.
  3. Создайте массив последовательных чисел из диапазона, указанного во втором входном значении, используя оператор splat * внутри квадратных скобок массива.

Выведите следующее на отдельных строках:

  1. Каждый элемент массива слов из входных данных
  2. Пустую строку
  3. Каждый элемент массива %w (alpha, beta, gamma)
  4. Пустую строку
  5. Каждый элемент массива символов %i
  6. Пустую строку
  7. Каждый элемент массива диапазона чисел

Например, если входные данные — 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 (*)

# Выведите элементы каждого массива на отдельных строках с пустыми строками между массивами
quiz iconПроверьте себя

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

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

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