1
任何人都可以解释以下行为:访问类变量无法
class X
@@x = 1
end
X.class_eval { @@x } #=> NameError: uninitialized class variable ...
X.class_eval { class_variable_get :@@x } #=> 1
经测试,在MRI 1.8.7,1.9.2,1.9.3和2.0.0具有相同的结果。为什么我不能直接在X.class_eval { ... }
区块内使用@@x
?
这只是*许多例子中的一个,为什么你应该实际读*警告。有人会努力编写这些警告来帮助您发现错误。不读它们有点粗鲁! –
@JörgWMittag,你为什么认为我没有*阅读*警告?我决定不把它们包括在问题中,这可能是一个错误,但那是另一回事,不是吗? – Alexis