访问ruby中的类变量

为什么ruby中的类变量不像静态变量那样,如何通过执行Mytest.value而不是MyTest.new.value来访问它?

class MyTest @@value=0 def value @@value end end puts MyTest.new.value 

你想要的东西

 class MyTest @@value = 0 def self.value @@value end end 

self使它成为类方法,类直接调用。

[编辑]阅读评论,了解为什么不这样做。

 class MyTest @value=0 class << self attr_accessor :value end end 

相反,如果你真的需要以这种方式访问​​变量,我建议一个简单的模块。

否则,就像Joshua Cheek对原始post所评论的那样,你应该为你的类使用Instance Variable并拥有访问器。