可以只复制数组的值吗?
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)
我创建了一个二维数组并尝试复制它的值。我尝试了赋值、复制和克隆。
@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)