Ruby动态类.如何解决“警告:从变量访问到”
发布时间:2020-12-16 22:40:05 所属栏目:百科 来源:网络整理
导读:我试图编写一个程序,根据从文件读取的配置动态定义 ruby类.我知道我可以使用Class.new来做到这一点.这是一个示例程序: x = [1,2,3]Test = Class.new do @@mylist = x def foo puts @@mylist endendTest.new.foo 当我运行这个我得到以下输出(以ruby 1.9.3p0
我试图编写一个程序,根据从文件读取的配置动态定义
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 `' 提前致谢! 解决方法
只是为了删除这个警告,你应该使用class_variable_set方法:
x = [1,3] Test = Class.new do class_variable_set(:@@mylist,x) def foo puts @@mylist end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |