Назад к вопросам
Intern
105
questionbank
Что такое Array.new в Ruby?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Array.new - это метод класса Array для создания новых объектов массива. Он имеет несколько перегрузок.
- Без аргументов: Создает пустой массив.
# Создает [] Array.new - С одним аргументом (размер): Создает массив заданного размера, заполненный
nil.# Создает [nil, nil, nil] Array.new(3) - С двумя аргументами (размер, значение по умолчанию): Создает массив заданного размера, инициализированный указанным значением. Важно: если значение является изменяемым объектом (например, другой массив или хэш), все элементы будут ссылаться на один и тот же объект.
# Создает [1, 1, 1] Array.new(3, 1) # Осторожно: создает [[], [], []], но все внутренние массивы - это один и тот же объект arr = Array.new(3, []) arr[0] << 1 # arr теперь [[1], [1], [1]] - С одним аргументом (размер) и блоком: Создает массив заданного размера, где каждый элемент инициализируется результатом выполнения блока. Индекс элемента передается в блок как аргумент. Этот подход позволяет создать массив с уникальными изменяемыми объектами.
# Создает [0, 1, 4] (индекс в квадрате) Array.new(3) { |i| i * i } # Создает [[], [], []] с уникальными внутренними массивами arr = Array.new(3) { [] } arr[0] << 1 # arr теперь [[1], [], []]