ruby - 数组意外多重赋值
问题描述
我有以下数组:
@master = Array.new(4, Array.new(2, Array.new()))
=> [[[], []], [[], []], [[], []], [[], []]]
我正在尝试分配最重要的价值:
@master[0][0] = "x"
=> "x"
但这是在做一个多任务
@master
=> [["x", []], ["x", []], ["x", []], ["x", []]]
如何仅分配第一个值?我希望得到以下数组:
@master
=> [["x", []], [[], []], [[], []], [[], []]]
解决方案
这样,您对每个子数组使用相同的引用。试试这个方法
@master = Array.new(4) { Array.new(2) { Array.new } }
推荐阅读
- python - 如何知道单词列表是否在字典中
- visual-studio-code - 在 vsCode 上使用鼠标滚动循环打开的选项卡
- python - 如何使用 OpenCV 将 mp4 文件 FPS 值 30 更改为 5
- javascript - 写入文件 fs 模块时出现问题,显然路径位于根级别
- android - 如何在 RecyclerView android kotlin 中的每个项目上显示日期(日和月)
- angular - Angular Material:通过 CSS 驱动颜色
- python - 从python中的函数外部停止并重新启动函数
- google-cloud-platform - 如何调试 Cloud Run (Visual Studio Code) 本地运行问题?
- siddhi - 用于 avro 的 Siddhi 源连接器未解码
- jquery - 将 jquery 从 3.3.1 分钟更新到 3.5.1 后表单不起作用