Ruby 复制数组的数组

标签 ruby arrays reference

Ruby 有没有办法复制多维数组?我的意思是一些内置函数。

当我尝试使用 .dup 时,它只返回引用:

irb(main):001:0> a = [[1,2,3], [4,5,6]]
=> [[1, 2, 3], [4, 5, 6]]
irb(main):002:0> b = a.dup
=> [[1, 2, 3], [4, 5, 6]]
irb(main):003:0> b[0][0] = 15
=> 15
irb(main):004:0> a == b
=> true

最佳答案

您需要复制列表中的数组,而不仅仅是外部数组。最简单的方法可能是类似

b = a.map(&:dup)

关于Ruby 复制数组的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10514857/

相关文章:

javascript - 以允许 JS 区分它们的方式在 PHP 中创建 "objects"和 "arrays"

php - 用需要相互引用的记录填充两个表的最佳方法是什么?

ruby - 我认为我可以增加 ruby​​ 中散列键的值。为什么会失败?

java - 如何将 Ruby 脚本与我的 JAR 捆绑在一起并调用它们

java - Java 中的类似接口(interface)问题

c++ - getline 超过指定数量

javascript - 定义对要以 JSON 格式存储的元素的引用,而不使用元素的类或 id

c++ - 从函数返回对局部变量的 const 引用

ruby-on-rails - Rails 在模型问题中包含模块

ruby - 在特定键的哈希数组中查找重复项