在Ruby中,来自同一文件但在类之外的调用方法的区别是什么,并且从不同的文件调用类外的相同方法。
我在代码中添加了''inifile'
第一种情况它正常工作并在哈希中加载数据但在第二种情况下它会产生以下错误:
/var/lib/gems/1.9.1/gems/inifile-3.0.0/lib/inifile.rb:98:in `initialize': can't convert nil into String (TypeError)
from /var/lib/gems/1.9.1/gems/inifile-3.0.0/lib/inifile.rb:98:in `open'
from /var/lib/gems/1.9.1/gems/inifile-3.0.0/lib/inifile.rb:98:in `write'
from LoadConfig.rb:5:in `<class:LoadConfig>'
from LoadConfig.rb:2:in `<main>
这是功能体
def write(opts = {}) filename = opts.fetch(:filename,@ filename)
encoding = opts.fetch(:encoding, @encoding)
mode = encoding ? "w:#{encoding}" : "w"
File.open(filename, mode) do |f|
@ini.each do |section,hash|
f.puts "[#{section}]"
hash.each {|param,val| f.puts "#{param} #{@param} #{escape_value val}"}
f.puts
end
end
这就是我调用写函数的方法
obj = IniFile.new
obj.write()