根据名称获取实例variables的值
一般来说,我怎么能得到一个对象的名称,我有一个string?
更具体地说,我有一个参数名称的列表(成员variables – dynamic构build,所以我不能直接引用它们)。
每个参数都是一个也有一个from_s方法的对象。 
我想要做下面的事情(这当然不起作用):
 define_method(:from_s) do | arg | @ordered_parameter_names.each do | param | instance_eval "field_ref = @#{param}" field_ref.from_s(param) end end 
	
达到这个最习惯的方式是:
 some_object.instance_variable_get("@#{name}") 
 没有必要使用+或intern ;  Ruby会处理这个很好。 但是,如果你发现自己伸出另一个物体并拉出了伊维尔,那么封装破裂的可能性很大。 
如果您明确要访问伊娃,正确的做法是将其设为访问者。 考虑以下:
 class Computer def new(cpus) @cpus = cpus end end 
 在这种情况下,如果你使用Computer.new ,你将被迫使用instance_variable_get来获取@cpus 。 但是如果你这样做,你可能意味着@cpus公开。 你应该做的是: 
 class Computer attr_reader :cpus end 
 现在你可以做Computer.new(4).cpus 。 
 请注意,您可以重新打开任何现有的课程,并将一个私人的伊娃变成读者。 由于访问者只是一个方法,你可以做Computer.new(4).send(var_that_evaluates_to_cpus) 
从一个实例variables的名字得到一个实例variables:
 name = "paramName" instance_variable_get(("@" + name).intern) 
 这将返回实例variables@paramName的值