Главная страница » Ruby » 17. Массивы
Массивы в Ruby — это упорядоченные коллекции элементов, которые могут содержать значения разных типов. Массивы являются одним из основных типов данных в Ruby и предоставляют мощные возможности для работы с группами данных. В этом уроке мы рассмотрим основные операции и методы для работы с массивами.
Массивы можно создавать несколькими способами.
Пример создания массива:
# Пустой массив
empty_array = []
# Массив с элементами
numbers = [1, 2, 3, 4, 5]
# Массив со смешанными типами данных
mixed_array = [1, "hello", 3.14, true]
Элементы массива можно получать по индексу. Индексация начинается с нуля.
Примеры доступа к элементам:
numbers = [10, 20, 30, 40, 50]
puts numbers[0] # => 10
puts numbers[2] # => 30
puts numbers[-1] # => 50 (отрицательный индекс обращается к элементам с конца)
Элементы массива можно изменять напрямую по индексу.
Пример изменения элемента:
numbers = [1, 2, 3, 4, 5]
numbers[2] = 99
puts numbers # => [1, 2, 99, 4, 5]
Ruby предоставляет множество методов для работы с массивами.
push
и <<
добавляют элементы в конец массива.unshift
добавляет элементы в начало массива.Пример:
numbers = [1, 2, 3]
numbers.push(4)
numbers << 5
numbers.unshift(0)
puts numbers # => [0, 1, 2, 3, 4, 5]
pop
удаляет последний элемент.shift
удаляет первый элемент.delete
удаляет все элементы, равные заданному значению.reject!
удаляет элементы по условию.Пример:
numbers = [1, 2, 3, 4, 5]
numbers.pop # => 5
numbers.shift # => 1
numbers.delete(3) # => 3
numbers.reject! { |num| num.even? }
puts numbers # => [5]
Массивы можно перебирать с помощью методов each
, map
, select
и других.
Пример:
numbers = [1, 2, 3, 4, 5]
# Использование each для вывода элементов
numbers.each { |num| puts num }
# Использование map для создания нового массива
squared_numbers = numbers.map { |num| num ** 2 }
puts squared_numbers # => [1, 4, 9, 16, 25]
# Использование select для фильтрации элементов
even_numbers = numbers.select { |num| num.even? }
puts even_numbers # => [2, 4]
В Ruby можно создавать массивы, содержащие другие массивы, что позволяет создавать двумерные массивы.
Пример:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
puts matrix[0][1] # => 2
puts matrix[2][2] # => 9
Попытка доступа к элементу по несуществующему индексу возвращает nil
.
Пример ошибки:
numbers = [1, 2, 3]
puts numbers[5] # => nil (нет элемента с индексом 5)
Изменение массива, который ожидается как неизменяемый, может привести к ошибкам.
Пример ошибки:
def print_first_element(arr)
arr[0] = 99
end
numbers = [1, 2, 3]
print_first_element(numbers)
puts numbers # => [99, 2, 3] (массив был изменён)
Массивы в Ruby являются мощным инструментом для хранения и управления коллекциями данных. Понимание их методов и особенностей позволяет эффективно работать с данными и создавать гибкие решения. Вы можете использовать массивы для простого хранения данных, их обработки и даже создания сложных структур данных.
Создайте массив fruits
, содержащий имена нескольких фруктов. Добавьте в массив новый фрукт, удалите один из фруктов и выведите на экран все оставшиеся фрукты.
Напишите метод transpose_matrix
, который принимает двумерный массив и возвращает его транспонированную версию.
Пример решения:
# Задание 1
fruits = ["apple", "banana", "cherry"]
fruits.push("orange")
fruits.delete("banana")
puts fruits # => ["apple", "cherry", "orange"]
# Задание 2
def transpose_matrix(matrix)
matrix.transpose
end
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
transposed = transpose_matrix(matrix)
puts transposed.inspect # => [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Проверьте свою программу, чтобы убедиться, что она правильно выполняет все операции и обрабатывает возможные ошибки.
Наша цель и главная задача сделать качественное образование в вашем браузере
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024 Все права защищены. CodeFor.