新手问题 如何访问 @c

rdongxie · 2016年06月02日 · 最后由 piecehealth 回复于 2016年06月02日 · 2190 次阅读

在 self.extended 中初始化一个@c,如何访问呢? 代码如下:

module ParentModule
  def self.extended(base)
    puts 'i am a parent module.'
    @c = 'i am c from parent module.'
    base.class_eval do
      @a = "i am a from parent module."
    end
  end

  def c
    @c
  end

  def a
    @a
  end
end
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), *%w( . ))
require 'exaa'
class SonClass
  extend ParentModule
end
s = SonClass.new
puts SonClass.class_variables
puts SonClass.c #这样访问不了。
puts SonClass.a

实例变量不是不能在外部直接访问只能定义 set 和 get 方法间接访问的么?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号