Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Ruby动态类.如何解决“警告:从变量访问到”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图编写一个程序,根据从文件读取的配置动态定义 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

大佬总结

以上是大佬教程为你收集整理的Ruby动态类.如何解决“警告:从变量访问到”全部内容,希望文章能够帮你解决Ruby动态类.如何解决“警告:从变量访问到”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。