class A class << self CONST = 1 end end puts A::CONST # this doesn't work
有没有办法通过这个自我调用来从类外部访问常量?
它实际上是这样做的:
class A self.CONST = 1 end
我知道我可以将常数移出这个自我调用以轻松解决这个问题.
我对ruby的内部运作更加好奇.
解决方法
不完全是你想要的,但你只是没有在类A中定义CONST但是在其元类中,因此我保存了对…的引用.
class A class << self ::AA = self CONST = 1 end end puts AA::CONST