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

Шпаргалка

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 (*)

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

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

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