在 Ruby 中,OptionParser returns 布尔值而不是输入值
in Ruby, OptionParser returns boolean instead of input values
我正在尝试使用 OptionParser 获取参数值。
我的代码没有返回值,而是只返回布尔值:
require 'optparse'
options ={}
opts = OptionParser.new do |opts|
opts.on('-v') { |version| options[:version] = version }
opts.on('-g') { |branch| options[:branch] = branch }
opts.on('-f') { |full| options[:full] = full }
opts.on('-h') { RDoc::usage }
end.parse!
# mandatory options
if (options[:version] == nil) or (options[:branch] == nil) or (options[:full]== nil) then
puts options[:branch]
puts options[:version]
puts options[:full]
RDoc::usage('usage')
end
puts options[:branch]
---> 正确
有什么想法吗?
如果您想捕获一个值,您需要请求它:
opts = OptionParser.new do |opts|
opts.on('-v=s') { |version| options[:version] = version }
opts.on('-g=s') { |branch| options[:branch] = branch }
opts.on('-f=s') { |full| options[:full] = full }
opts.on('-h') { RDoc::usage }
=s
表示法表示存在关联值。
在定义这样的接口时,不要忘记包含像 --version
或 --branch
这样的长格式名称,这样人们就不必记住 g
表示 "branch".
我鼓励您阅读 fantastic documentation 中涵盖的所有内容。
我正在尝试使用 OptionParser 获取参数值。 我的代码没有返回值,而是只返回布尔值:
require 'optparse'
options ={}
opts = OptionParser.new do |opts|
opts.on('-v') { |version| options[:version] = version }
opts.on('-g') { |branch| options[:branch] = branch }
opts.on('-f') { |full| options[:full] = full }
opts.on('-h') { RDoc::usage }
end.parse!
# mandatory options
if (options[:version] == nil) or (options[:branch] == nil) or (options[:full]== nil) then
puts options[:branch]
puts options[:version]
puts options[:full]
RDoc::usage('usage')
end
puts options[:branch]
---> 正确
有什么想法吗?
如果您想捕获一个值,您需要请求它:
opts = OptionParser.new do |opts|
opts.on('-v=s') { |version| options[:version] = version }
opts.on('-g=s') { |branch| options[:branch] = branch }
opts.on('-f=s') { |full| options[:full] = full }
opts.on('-h') { RDoc::usage }
=s
表示法表示存在关联值。
在定义这样的接口时,不要忘记包含像 --version
或 --branch
这样的长格式名称,这样人们就不必记住 g
表示 "branch".
我鼓励您阅读 fantastic documentation 中涵盖的所有内容。