0
Я не понимаю, почему значение массива изменяется в двух массивах.Ошибка смещения массива
@arr = [1, 2, 3, 4]
other_array = @arr
other_array.each do |value|
# I delete de element value 4 from array
other_array.delete(4)
end
Я напечатал значения массива:
puts @arr # => [1, 2, 3]
puts other_array # => [1, 2, 3]
Почему? Я удалил элемент из other_array
, а не из формы @arr
.
'other_array' просто ссылается на тот же массив в памяти, что и' @ arr'. Вам нужно будет скопировать массив, если вы хотите, чтобы они были независимыми. Что-то ilke 'other_array = Array.new (@arr)' –
Вам нужно назначить копию массива как 'other_array = @ arr.dup' –