Ruby
2026-02-26 20:54 Diff

В Ruby необычно много способов создания массивов. Они помогают сделать определение короче, и достаточно часто используются на практике. Особенно любит их линтер Rubocop.

%w позволяет задавать массив перечислением без использования дополнительных символов. Даже в примере выше видно, насколько код получается короче и даже читаемее. Единственное ограничение такого способа – наличие пробелов в значениях. Каждый пробел считается разделителем значений:

Технически, слова можно экранировать, но так обычно не делают из-за резкого ухудшения читаемости:

Похожим способом создается массив символов, только вместо %w используется %i:

Так же массивы можно создавать из диапазонов или итераторов:

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