gpt4 book ai didi

ruby - OptionParser 返回 bool 值而不是参数?

转载 作者:数据小太阳 更新时间:2023-10-29 06:31:26 27 4
gpt4 key购买 nike

当我运行 this sample来自 OptionParser 文档:

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

然后输入:ruby test.rb -v 100,它返回:

{:verbose=>true}
["100"]

verbose 不应该是 100,不是 bool 值吗?

我对此一无所知,有人有什么建议吗?

最佳答案

您已指定 -v 选项没有参数:

opts.on("-v", ...

如果你想让它接受一个参数,那么你必须这样说:

opts.on("-v n", "--verbose=n", ...
#-----------^

如果你想强制n是一个整数,那么:

opts.on('-v n', '--verbose=n', OptionParser::DecimalInteger, ...

您想在 make_switch 开始阅读文档(如原样),然后对示例进行逆向工程。

不要因为困惑而难过,OptionParser 文档并不是最好的东西。

关于ruby - OptionParser 返回 bool 值而不是参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9577478/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com