在Ruby中,我可以从实例方法中访问类实例变量吗?

时间:2018-11-28 20:53:21

标签: ruby class instance

以下代码通过类方法在类C中设置类变量,并显示可从实例方法访问它:

class C
  def self.set_a
    @@a = 1
  end

  def get_a
    @@a
  end
end

C.set_a
C.new.get_a #=> 1

如果我将类方法@@a中的set_a替换为@a,以便它创建类实例变量而不是类变量,我是否仍可以从实例内部访问它方法get_a

1 个答案:

答案 0 :(得分:3)

我认为您不能直接引用它。类是一个对象,实例变量是该对象的私有/内部对象。您可以在类上使用instance_variable_get或将其包装在getter方法中来访问它。

在Rails中,您可以使用class_variable macro来简化设置和访问类级变量的操作。