当我想要CONST在类Test中访问常量时
class Test
CONST = 7
end
Run Code Online (Sandbox Code Playgroud)
来自课外,我必须这样做:
puts Test::CONST
Run Code Online (Sandbox Code Playgroud)
我这样做时为什么会出错?
puts obj::CONST
Run Code Online (Sandbox Code Playgroud)
如果obj是Test类的对象,如果我尝试通过对象访问常量,为什么会出错?
Ale*_*yne 16
因为实例对象和类对象不是同一个东西.命名空间存在于类对象上,并且在实例上不存在.
但是,您可以向实例询问它的类,然后深入研究它.
puts obj.class::CONST
Run Code Online (Sandbox Code Playgroud)