我正在用ruby編寫不同選項的腳本,我無法理解OptionParser如何幫助我。帶有感嘆號的紅寶石示例
特別是,有在文檔中的例子:https://docs.ruby-lang.org/en/2.1.0/OptionParser.html
require 'optparse'
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
options[:verbose] = v
end
end.parse!
p options
p ARGV
我能理解的「end.parse」行感嘆號(但我希望以後的參數),但我發現以下2行混淆,p
尚未聲明,我不明白它是否是示例源的一部分。
我該如何使用'-v'選項?我只是檢查選項[:v]是否爲nil
或true
?
最後一件事,其他選項會發生什麼? OptionParser只解析開關嗎?如果我在'-v'之後還有其他參數會怎麼樣?像myscript -v duck ketchup banana
?
'p' [在'Kernel'中定義](http://ruby-doc.org/core-2.3.1/Kernel.html#method-ip),所以它幾乎總是在Ruby中可用。 'p obj'等同於'puts obj.inspect'。 – GolfWolf