我正在尝试编写一个脚本,该脚本获得一些参数,其中一些参数可能为空。
似乎红宝石解析器不允许这样做并抛出(OptionParser :: InvalidArgument)
代码:
require 'optparse'
options = {}
OptionParser.new do |opt|
opt.on('--might_be_empty might_be_empty', String) { |o| options[:might_be_empty] = o }
end.parse!
puts "might_be_empty: #{options[:might_be_empty]}"
快乐流:
ruby ./for_stack.rb --might_be_empty "some_real_data"
might_be_empty: some_real_data
当值为空时:
ruby ./for_stack.rb --might_be_empty ""
./for_stack.rb:10:in `<main>': invalid argument: --might_be_empty (OptionParser::InvalidArgument)
我如何告诉OptionParser允许空字符串?
使用Object
代替String
:
opt.on('--might_be_empty might_be_empty', Object) { ... }
测试:
ruby ./for_stack.rb --might_be_empty "some_real_data"
might_be_empty: some_real_data
ruby ./for_stack.rb --might_be_empty ""
might_be_empty: