访问类外的常量

taw*_*eed 6 ruby oop

当我想要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)

如果objTest类的对象,如果我尝试通过对象访问常量,为什么会出错?

Ale*_*yne 16

因为实例对象和类对象不是同一个东西.命名空间存在于类对象上,并且在实例上不存在.

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

puts obj.class::CONST
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,简单直截了当**因为实例对象和类对象不是一回事** (3认同)