ruby on rails(Ruby 元编程) 动态定义实例变量

使用instance_variable_set方法


# obj.instance_variable_set(symbol, obj)    -> obj # obj.instance_variable_set(string, obj)    -> obj class Fred  def initialize(p1, p2)    @a, @b = p1, p2  end end fred = Fred.new('cat', 99) fred.instance_variable_set(:@a, 'dog')   #=> "dog" fred.instance_variable_set(:@c, 'cat')   #=> "cat" fred.inspect                             #=> "#<Fred:0x401b3da8 @a=\"dog\", @b=99, @c=\"cat\">"

ruby on rails(Ruby 元编程) 动态获取实例变量值

使用instance_variable_get方法

# obj.instance_variable_get(symbol)    -> obj
# obj.instance_variable_get(string)    -> obj

class Fred
  def initialize(p1, p2)
    @a, @b = p1, p2
  end
end

fred = Fred.new('cat', 99)
fred.instance_variable_get(:@a)    #=> "cat"
fred.instance_variable_get("@b")   #=> 99
0条评论 顺序楼层
请先登录再回复