以下修改方法以某种方式修改整个@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