我在Ruby中创建一个程序来替换一个目录中的多个文件的内容,并且有四个参数:
现在,这是该计划的开始:
dir, ext, find, replace = ARGV
dir, ext, find, replace = ARGV.shift
raise "Missing argument for directory" unless dir
raise "..." unless ext
#etc
但是,当我在没有定义参数的情况下运行此程序时,它只显示未定义的第一个参数(目录),其中包含 RuntimeError 并且imediatelly关闭程序。对此有什么不同的方法吗?
答案 0 :(得分:0)
我可以为你提供这样的变体:
missing_parameters = ["dir","ext","find","replace"].select{|name| eval(name).nil?}
raise "Missing parameters for #{missing_parameters.join(',')}" unless missing_parameters.empty?
但坦率地说,我不喜欢使用eval:)