Когда дело доходит до хранения связанной и несложной информации в программе, всегда возникают массивы. Массивы — это набор упорядоченного списка элементов. Используя массивы, вы можете хранить связанные значения в одной переменной, что делает ваш код эффективным и простым в управлении. В Ruby массивы содержат множество встроенных методов, что значительно упрощает работу со списковыми данными.
В этой статье описаны различные методы, которые вы можете использовать для добавления элементов в массив в Ruby.
Как создать массив в Ruby
В Ruby есть несколько способов создать массив. Самый распространенный и простой способ — добавить элементы массива в пару квадратных скобок, разделенных запятой.
[1,2,3,4,5]
Вышеупомянутый массив состоит из пяти элементов.
Как и любой другой допустимый объект, вы можете присвоить массив имени переменной следующим образом:
myarry = [1,2,3,4,5]
Чтобы создать пустой массив с помощью метода квадратных скобок, вы можете:
empty = []
Приведенный выше синтаксис инициализирует пустой массив, и вы можете добавлять значения, используя методы, которые мы обсудим в следующем разделе этого руководства.
Другой способ создать массив в Ruby — использовать новый метод класса.
myarray = Array.new
Приведенный выше формат создаст пустой массив. Этот формат аналогичен инициализации пустого массива с использованием пары пустых квадратных скобок.
Чтобы указать размер массива во время создания, вы передаете размер в круглых скобках:
myarray = Array.new(10)
В приведенном выше примере Ruby создает массив из 10 элементов, что означает, что индекс элементов начинается с 0 до 9.
Последний способ создания массива сочетает в себе квадратные скобки и новый метод класса.
Синтаксис для этого ниже:
myarray = Array.[]()
Приведенный выше синтаксис создаст новый пустой массив. Если вы хотите присвоить значения во время создания массива, вы можете сделать:
myarray = Array.[](1,2,3,4,5)
Ruby возьмет элементы, переданные в скобках, и добавит их в новый массив.
Как добавить элементы в массив в Ruby
Если у вас есть существующий массив, вы можете добавлять элементы в коллекцию, используя различные методы.
Метод 1: Использование следующего индекса
Первый способ — присвоить значение следующему индексу. Возьмем пример, в котором у вас есть массив, подобный показанному ниже:
frameworks = [
«React»,
«Angular»,
«Vue JS»,
«Svelte»
]
В приведенном выше примере у нас есть четыре элемента в массиве. Поскольку индекс массива, элементы начинаются с 0, максимальное значение индекса равно 3.
Чтобы добавить элемент в массив, используя его индекс, мы можем присвоить значение последующему индексу следующим образом:
frameworks[4] = «Mithril Js»
У использования вышеупомянутой техники для добавления элементов в массив есть два недостатка.
1: если у вас большой массив, может быть сложно вспомнить последующий индекс. Таким образом, если вы пропустите индекс, Ruby будет вставлять нулевые значения до соответствующего индекса.
Например:
frameworks[10] = «Stencil Js»
print frameworks
[«React», «Angular», «Vue JS», «Svelte», «Mithril Js», nil, nil, nil, nil, nil, «Stencil Js»]
В приведенном выше примере Ruby добавляет значения nil от индекса 5 до 9, чтобы соответствовать указанному индексу 10.
2: если вы укажете неправильный индекс, вы перезапишете значение по указанному индексу.
Например:
frameworks = [
«React»,
«Angular»,
«Vue JS»,
«Svelte»
]
frameworks[1] = «Ooops!»
print frameworks
В приведенном выше примере мы указали неправильный индекс, что привело к перезаписи сохраненного значения.
Вот результат, чтобы показать это:
[«React», «Ooops!», «Vue JS», «Svelte»]
Метод 2: Использование метода push
Мы можем использовать встроенный метод push, чтобы избежать ошибок, которые могут возникнуть при использовании предыдущего метода.
Метод возьмет указанное в скобках значение и добавит его к последнему элементу в массиве.
frameworks = [
«React»,
«Angular»,
«Vue JS»,
«Svelte»
]
frameworks.push(«Mithril Js»)
Используя метод push, вам не нужно вспоминать текущий индекс; Ruby позаботится об этом автоматически.
В некоторых случаях вместо метода push используется синтаксис <<. Функциональность идентична методу push:
frameworks << «Mithril Js»
Метод 3: Использование метода без сдвига
Оба метода index и push добавляют элементы в конец массива. Чтобы добавить элемент в начало коллекции, используйте метод unshift.
Метод unshift работает аналогично методу push. Однако он добавляет элемент с индексом 0.
frameworks = [
«React»,
«Angular»,
«Vue JS»,
«Svelte»
]
frameworks.unshift(«Mithril Js»)
print frameworks
Результирующий массив для этого примера будет:
[«Mithril Js», «React», «Angular», «Vue JS», «Svelte»]
Метод 4: Использование метода вставки
Метод #insert в Ruby принимает в качестве аргументов позицию индекса и значение. Вы можете использовать его для вставки элемента в любую позицию индекса.
Рассмотрим следующий синтаксис:
frameworks = [
«React»,
«Angular»,
«Vue JS»,
«Svelte»
]
frameworks.insert(2, «Stencil Js»)
print frameworks
Результирующий массив для этого примера:
[«React», «Angular», «Stencil Js», «Vue JS», «Svelte»]
В приведенном выше примере метод вставки «втиснет» элемент в указанный массив.
ПРИМЕЧАНИЕ. Используйте этот метод осторожно, особенно если у вас есть другие блоки кода, ссылающиеся на заданный индекс.
Заключение
В этом руководстве показано, как работать с массивами, в том числе с использованием различных методов для создания и добавления элементов в массив.
СОВЕТ ОТ ПРОФЕССИОНАЛА: в Ruby есть псевдонимы для методов push и unshift как append и prepend соответственно.