我想在单例类上定义一个类变量。我检查了这个程序的结果:
class C
class << self
@@val = 100
end
end
C.singleton_class.class_variables #=> [], I expect [:@@val]
C.class_variables #=> [:@@val]
我期望的范围是@@val
成为单例类,不是吗?
你能告诉我如何使用 class << self
在单例类上定义类变量吗? ,这个程序不正确的原因是什么?
最佳答案
这是因为当Ruby解析器遇到类变量时,会根据词法范围解析当前类。
比照。 http://blog.honeybadger.io/lexical-scoping-and-ruby-class-variables/
关于ruby - 如何在单例类上定义类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33921185/