2015-07-20 6 views
2

Я создал 2-мерный массив и попытался скопировать его значение. Я попробовал назначение, дублировать и клонировать.Возможно скопировать только значение массива?

@grid = Array.new(3) { Array.new(3) } 
new_grid = @grid.clone 

Всякий раз, когда я пытаюсь изменить значение в новой переменной, изменение отражается в исходном массиве.

new_grid[0][0] = true 
@grid # => [[true, nil, nil], [nil, nil, nil], [nil, nil, nil]] 

Есть ли способ избежать этого связывания значений?

ответ

2

Да. Сделайте глубокий дуп или клон.

new_grid = @grid.map(&:dup) 
+0

Большое спасибо! : D – frugalcoder