2015-08-28 3 views
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.

+1

'other_array' просто ссылается на тот же массив в памяти, что и' @ arr'. Вам нужно будет скопировать массив, если вы хотите, чтобы они были независимыми. Что-то ilke 'other_array = Array.new (@arr)' –

+0

Вам нужно назначить копию массива как 'other_array = @ arr.dup' –

ответ

-1

other_arrayявляется@arr.

......................

Смежные вопросы