Files
SecondBrain/99 System/Archive/Ruby - массивы.md
T
2026-05-31 10:18:48 +03:00

4.7 KiB
Raw Blame History

status, type, tags, created, updated, aliases
status type tags created updated aliases
seed concept
2025-12-17 2026-05-17
Ruby - массивы

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 позволяет создавать многомерные массивы, элементы которого могут иметь разную размерность. !Pasted image 20260517200426.png

Индексация массива

Доступ к элементам массива в 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!() # преобразует в одномерный, заменяя первоначальный

Срезы массивов

  1. Использование диапазонов при индексации
  2. Использование индекса и длины подмассива
  3. array.values_at(selector) - возвращает массив, который состоит из элементов массива array, которые соответствуют передаеваемым селекторам. Селекторы могут быть целыми числами (индексами) или диапазонами.
  4. array.first(n) и array.last(n), которые возвращают первые (последние) n элементов.

Операции с массивом

  1. array.sample(n) выбор случайного элемента (или n элементов)
  2. array.select{ |item| block } выполняет выражение block для каждого элемента массива и возвращает массив, состоящий из элементов, для которых выражение принимает значение true

Удаление из массива

  1. array.delete(obj) - удаляет все элементы массива, которые равны obj. Если ничего не было удалено, то -> nil
  2. array.delete_at(index) удаляет элемент с индексом index.
  3. array.delete_if{ |item| block } удаляет все элементы, полходящие под условие.
  4. array.shift удаляет первый элемент из массива и возвращает его, если нет такого, то nil.
  5. array.pop удаляет последний элемент из массива и возвращает его.

Полезные методы

!Pasted image 20260517203130.png !Pasted image 20260517203153.png!Pasted image 20260517203218.png !Pasted image 20260517203235.png !Pasted image 20260517203252.png !Pasted image 20260517203317.png !Pasted image 20260517203352.png