可以只复制数组的值吗?

Possible to copy just the value of an array?

我创建了一个二维数组并尝试复制它的值。我尝试了赋值、复制和克隆。

@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]]

有什么方法可以避免这种值链接?

是的。进行深度复制或克隆。

new_grid = @grid.map(&:dup)