从模块内部修改对象实例

时间:2011-07-19 14:21:57

标签: ruby

是否可以从包含在对象类中的模块内获取/设置对象的实例变量?

1 个答案:

答案 0 :(得分:1)

你的意思是:

module Foo
  def bar
    @bar ||= 0
    @bar += 1
  end
end

class Tester
  include Foo
  def baz
    @bar ||= 0
    @bar += 500
  end
end

t = Tester.new
t.bar  #=> 1
t.baz  #=> 501
t.bar  #=> 502
t.bar  #=> 503
t.baz  #=> 1003

如果是,那么是的。在某种程度上相关的说明中,您可能还会找到difference between include and extend有用的解释。