【发布时间】:2013-04-29 18:16:56
【问题描述】:
我有一个这样的 ruby 类:
class C
@@v = 1
class << self
p @@v # everything goes well here
end
end
class << C
# here I get an exception
# `singletonclass': uninitialized class variable @@v in Object (NameError)
# from a.rb:5:in `<main>'
p @@v
end
我的问题是:异常说'未初始化的类变量@@v in Object (NameError)',但为什么 ruby 在 Object(main) 中查找类变量?
似乎 ruby 总是在它之外查找元类的类变量。
【问题讨论】:
-
当你做 'class
-
@vgoff 什么意思:当你做 'class
-
在你的第二堂课中
-
@vgoff 为什么范围仍然是主要的?据我所知,定义 ruby 的类何时会改变它的范围。
-
我相信这是Ruby的问题。顶部和底部代码应该给出相同的结果。请在bugs.ruby-lang.org/issues报告问题
标签: ruby metaprogramming