我试图编写一个程序,根据从文件读取的配置动态定义
ruby类.我知道我可以使用Class.new来做到这一点.这是一个示例程序:
x = [1,2,3] Test = Class.new do @@mylist = x def foo puts @@mylist end end Test.new.foo
当我运行这个我得到以下输出(以ruby 1.9.3p0运行):
c:/utils/test.rb:4: warning: class variable access from toplevel c:/utils/test.rb:7: warning: class variable access from toplevel 1 2 3
有人知道是什么原因导致这些警告和我如何摆脱他们?
我已经尝试替换tjhat的行
@@mylist = x
有了这个
class_variable_set(:@@mylist,x)
但是当我这样做时,我会得到这个错误:
c:/utils/test.rb:7: warning: class variable access from toplevel c:/utils/test.rb:7:in `foo': uninitialized class variable @@mylist in Object (NameError) from c:/utils/test.rb:11:in `'
提前致谢!