假设我有一些深层嵌套的数组结构和对内部对象的引用:
strings = ["1", "2", " 3"]
nested = [[strings] * 10] * 10
reference = nested[0][0][0]
如何替换 reference
指向的对象,例如。 “4”
?我需要一些可以与任意对象一起使用的通用东西,而不是 String#gsub!
和 friend 。类似Object#replace(other_obj)
。
最佳答案
你不能,我们在 Ruby 中没有(显式)指针,我们有(隐式)引用,但你不能取消引用它们来弄乱它们包含的内容。相反,您需要执行以下操作:
inner nested[0][0]
inner[0] = '4'
这样您就可以使用对要替换的元素的引用而不是元素本身。
当然,根据您问题中的结构,inner[0] = '4'
将替换 strings
的第一个元素(因此 nested
的每个元素,因为它只是对 strings
引用的同一数组的一堆引用。
很抱歉,这里的术语“引用”如此重载。这是对英语的可怕滥用,但英语本身就是对英语的滥用:)
关于ruby - 如何在 Ruby 中替换对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26951380/