以下修改方法以某種方式修改整個@x數組,而不僅僅是簡單地生成稍後要推送的另一個元素。怎麼來的?意外的數組行爲
def modify i, s
t = @x[-1]
t[i] = t[i] + s
t
end
@x = [ [10, 12] ]
@x << modify(0, 1)
puts @x
編輯 下面的代碼做的伎倆。仍然不知其可能擺脫對參數
def modify p, i, s
a = p.to_a
a[i] += s*@delta[i]
Vector.elements(a)
end
你能澄清你要在這裏完成的。你想要什麼方法去做?另外,爲什麼在方法中引用特定的實例變量('@ x'),而不是'self'? – Telemachus
它很清楚爲什麼這種方法修改整個@x。不清楚你正在努力完成什麼。這是什麼應用?你能詳細說明一下上下文嗎? – avguchenko
我試圖修改共享向量(@x [-1]),然後將修改後的版本推送到@x數組。 – gmile