假设我有一些深层嵌套的数组结构和对内部对象的引用:
strings = ["1", "2", " 3"]
nested = [[strings] * 10] * 10
reference = nested[0][0][0]
如何将对象reference
替换为例如。 "4"
?我需要一些适用于任意对象的通用,而不是String#gsub!
和朋友。类似于Object#replace(other_obj)
。
答案 0 :(得分:2)
你不能,我们在Ruby中没有(显式)指针,我们有(隐式)引用,但你不能取消引用它们来混淆它们包含的内容。相反,你需要做类似的事情:
inner nested[0][0]
inner[0] = '4'
这样您就可以使用对要替换的元素的引用而不是元素本身。
当然,根据您问题中的结构,inner[0] = '4'
将替换strings
的第一个元素(以及nested
的每个元素,因为它只是一堆引用strings
引用的相同数组。
很抱歉引用这个术语的重载程度如何。这是一种可怕的英语滥用,但英语本身就是滥用英语:)