4.7 KiB
status, type, tags, created, updated, aliases
| status | type | tags | created | updated | aliases | |
|---|---|---|---|---|---|---|
| seed | concept | 2025-12-17 | 2026-05-17 |
|
Ruby - массивы
Массив в Ruby - эксземпляр класса Array Поскольку массивы являются объектами со своими методами, то это позволяет облегчить работу со списками данных.
Массив задается с использованием квадратных скобок, но не только.
a1 = [...]
a2 = %w{word1 word2}
a3 = ['start', nil, 5, [...]]
a4 = Array.new
a5 = Array.new(3)
a6 = Array.new(5, "Test")
a7 = Array.new(5) { |i| i*i }
a8 = Array.[](1, 'a', /^A/)
a9 = Array[1, 'a', /^A/]
Ruby позволяет создавать многомерные массивы, элементы которого могут иметь разную размерность.
!
Индексация массива
Доступ к элементам массива в Ruby осуществляется путем указщания его индекса, при этом, есть поддержка отрицательных индексом для индексации с конца.
Размеры массива
size == length - синонимы, позволяют узнать количество элементов в массиве
Поиск элементов массива
Метод array.include?(obj) возвращает true, если объект является элементом массива array. Иначе - false.
Метод array.index(obj) возвращает индекс первого вхождения элемента в массив array, который равен искомому. Возврат nil, если такой элемент не был найден.
Добавление элементов в массив
a = [1,2,3]
a << 4
a += [5]
a.push(6)
Метод array.unshift(obj) добавляет элемент в начало массива (со сдвигом вправо уже существующих).
Метод array.push(obj) добавляет элемент в конец массива (синоним - append).
array.index(index, obj) вставляет полученные значения перед элементом с индексом index.
Разворачивание многомерного массива в одномерный
array.flatten()
array.flatten!() # преобразует в одномерный, заменяя первоначальный
Срезы массивов
- Использование диапазонов при индексации
- Использование индекса и длины подмассива
array.values_at(selector)- возвращает массив, который состоит из элементов массиваarray, которые соответствуют передаеваемым селекторам. Селекторы могут быть целыми числами (индексами) или диапазонами.array.first(n)иarray.last(n), которые возвращают первые (последние)nэлементов.
Операции с массивом
array.sample(n)выбор случайного элемента (илиnэлементов)array.select{ |item| block }выполняет выражениеblockдля каждого элемента массива и возвращает массив, состоящий из элементов, для которых выражение принимает значение true
Удаление из массива
array.delete(obj)- удаляет все элементы массива, которые равныobj. Если ничего не было удалено, то ->nilarray.delete_at(index)удаляет элемент с индексомindex.array.delete_if{ |item| block }удаляет все элементы, полходящие под условие.array.shiftудаляет первый элемент из массива и возвращает его, если нет такого, тоnil.array.popудаляет последний элемент из массива и возвращает его.
Полезные методы
!
!
!
!
!
!
!