访问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并拥有访问器。