在ruby脚本中访问self.method中的变量
我对ruby很新.我在self.method中获取变量值时遇到问题
我的ruby类/脚本看起来像这样: class A1 def initialize @myUtil = MyUtil.new log @test_hash = @myUtil.loadPropertiesFile(File.dirname(__FILE__) + '/my-tests.properties') end def self.testCases tests = {} @test_hash.each do |k,v| puts "#{k}" end tests end def launch test,testbed,h = {} @test_hash.each do |k,v| puts "#{k}" end end end 我可以在启动方法中打印@test_hash中的值,但不能在self.testCases中打印.我在哪里弄错了? 解决方法
我在你的代码中看到了一些错误.
>在你的initialize方法中,你创建了一个全局变量$test_hash,只要你把一个$放在变量前面,它就变得可用了.在这种情况下,这不是你想要做的事情.在这种情况下,实例变量最适合您. 这是我如何做到这一点.为了测试目的,我用一个简单的哈希替换了test_hash. class A1 def initialize @test_hash = {a: 1,b: 2,c: 3,d: 4,e: 5} end def testCases @test_hash.each do |k,v| puts k end end end 现在,您创建一个A1的新实例并调用testCases方法(现在是一个实例方法,而不是类方法) A1.new.testCases (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |