2013-02-14 56 views
5

当我想从类的外部访问不断CONSTTest访问常量

class Test 
    CONST = 7 
end 

,我必须这样做:

puts Test::CONST 

为什么我得到我这样做时出错?

puts obj::CONST 

如果objTest类的对象,为什么我得到一个错误,如果我试图通过对象来访问常数?

回答

15

因为实例对象和类对象不是一回事。名称空间存在于类对象上,并且不存在于实例上。

但是,您可以询问实例的类,然后深入研究。

puts obj.class::CONST 
+2

谢谢,简单直接点**因为实例对象和类对象不是同一件事** – tawheed 2013-02-14 01:31:47