Ruby--instance_variable_get(@xx)

instance_variable_get(var)

ruby 1.8 特性

取得并返回对象的实例变量的值.

可以使用字符串或者Symbol来向var指定实例变量名.

若实例变量尚未定义,则返回nil.

class Foo
  def initialize
    @foo = 1
  end
end

obj = Foo.new
p obj.instance_variable_get("@foo")     # => 1
p obj.instance_variable_get(:@foo)      # => 1
p obj.instance_variable_get(:@bar)      # => nil

 

instance_variable_set(var, val)

ruby 1.8 特性

val的值赋值给对象的实例变量并返回该值.

可以使用字符串或Symbol来向var设定实例变量名.

若实例变量尚未定义,则重新定义.

obj = Object.new
p obj.instance_variable_set("@foo", 1)  # => 1
p obj.instance_variable_set(:@foo, 2)   # => 2
p obj.instance_variable_get(:@foo)      # => 2

 

posted on 2013-02-13 00:20  tim_sheng  阅读(1935)  评论(0编辑  收藏  举报

导航