Операция | Описание |
list [index] | Считывает элемент по заданному индексу. Вызывает ошибку времени выполнения, если этот индекс выходит за пределы. Если список представляет собой кортеж, а индекс — целое число, ошибка выхода за пределы будет обнаружена во время компиляции. |
list[index]? | Аналогично list [index], но возвращает ni1, если индекс выходит за пределы. |
list.size | Возвращает количество элементов внутри кортежа или массива. |
array[index] = value | Заменяет значение по заданному индексу или повышает, если индекс выходит за пределы. Поскольку кортежи неизменяемы, это доступно только для массивов. |
array << value array.push(value) | Добавляет новое значение в конец массива, увеличивая его размер на единицу. |
array.pop array.pop? | Удаляет и возвращает последний элемент массива. В зависимости от варианта он может поднимать или возвращать ноль в пустых массивах. |
array.shift array.shift? | Аналогично pop, но удаляет и возвращает первый элемент массива, уменьшая его размер на единицу. |
array.unshift(value) | Добавляет новое значение в начало массива, увеличивая его размер на единицу. Это противоположность сдвигу. |
Операция | Описание |
array.sort | Реорганизует элементы массива, чтобы обеспечить их упорядоченность. Другой полезный вариант — сортировка по методу, при которой для получения критериев сортировки требуется блок. Первый вариант возвращает отсортированную копию массива, а второй сортирует на месте. |
array.sort! | |
array.shuffle array.shuffle! | Реорганизует элементы массива случайным образом. Все перестановки имеют одинаковую вероятность. Первый вариант возвращает перетасованную копию массива; второй шаркает на месте. |
list.each do el puts el | Перебирает элементы коллекции. Порядок сохранен. |
end | |
list.find do el | Возвращает первый элемент массива или кортежа, соответствующий заданному условию. Если ни одно не соответствует, возвращается nil. |
el > 3 | |
end | |
list.map do el | Преобразует каждый элемент списка, применяя к нему блок, возвращая новую коллекцию (массив или кортеж) с новыми элементами в том же порядке. У массива также есть карта! метод, который изменяет элементы на месте. |
el + 1 | |
end | |
list.select do el | Возвращает новый массив, отфильтрованный по условию в блоке. Если ни один элемент не соответствует, массив будет пустым. Существует также функция reject, которая выполняет противоположную операцию, фильтруя несовпадающие элементы. Для массивов доступны варианты на месте путем добавления ! к имени метода. |
el > 3 | |
end |
Не все данные упорядочены или последовательны. Для них существуют другие контейнеры данных, например хэш.
Хэш