【发布时间】:2013-01-29 18:03:34
【问题描述】:
当我想访问 Test 类中的常量 CONST 时
class Test
CONST = 7
end
在课堂之外,我必须这样做:
puts Test::CONST
为什么我这样做时会出错?
puts obj::CONST
如果obj是Test类的对象,为什么我尝试通过该对象访问常量会报错?
【问题讨论】:
当我想访问 Test 类中的常量 CONST 时
class Test
CONST = 7
end
在课堂之外,我必须这样做:
puts Test::CONST
为什么我这样做时会出错?
puts obj::CONST
如果obj是Test类的对象,为什么我尝试通过该对象访问常量会报错?
【问题讨论】:
因为实例对象和类对象不是一回事。命名空间存在于类对象上,不存在于实例上。
但是,您可以向实例询问它的类,然后深入研究。
puts obj.class::CONST
【讨论】: