【发布时间】:2015-02-19 18:10:06
【问题描述】:
给定一个像这样的 ruby 类
class Thing
class << self
NUM = 3
def speak
NUM.times { puts "Hi!" }
end
end
end
我无法从课堂外访问Thing::NUM。如果改为
class Thing
NUM = 3
class << self
def speak
NUM.times { puts "Hi!" }
end
end
end
Thing.speak 仍然可以正常工作,但我现在也可以访问Thing::NUM。我知道class << self 习惯用法会打开对象的单例类,但我很困惑为什么这样定义的类方法可以公开访问,而常量却不能。
【问题讨论】: