首页 > 解决方案 > 数组意外多重赋值

问题描述

我有以下数组:

@master = Array.new(4, Array.new(2, Array.new()))
=> [[[], []], [[], []], [[], []], [[], []]]

我正在尝试分配最重要的价值:

@master[0][0] = "x"
=> "x"

但这是在做一个多任务

@master
=> [["x", []], ["x", []], ["x", []], ["x", []]]

如何仅分配第一个值?我希望得到以下数组:

@master
=> [["x", []], [[], []], [[], []], [[], []]]

标签: ruby

解决方案


这样,您对每个子数组使用相同的引用。试试这个方法

@master = Array.new(4) { Array.new(2) { Array.new } }

推荐阅读