我试图获取一个对象,然后在另一个对象的方法中修改它,但它没有返回更新的值。这最好用一个例子来解释:
@testobject = "This is a string."
handler=Handler.new
handler.load(@testobject)
puts @testobject
=> "This is a string."
处理程序加载:
def load(@testobject)
@testobject = @testobject + " Modified!"
end
我确信这与对象的范围有关,但我对如何使其他类可以访问和修改原始对象感到困惑。
编辑:也许这是一个不好的例子。我正在使用字符串来帮助我理解变量/对象范围的工作原理,但在我的实际程序中,它不是字符串。
更具体地说,我有一个正在使用的对象(“流”)。然后我有一个类似于插件的“处理程序”对象,每个都需要修改第一个“流”对象。对于每个处理程序,我想调用 handler.load,让它运行适当的方法来更改“流”对象的设置。