面试题答案
一键面试设计思路
- 使用Gem:Ruby 标准库中没有专门处理复杂命令行参数解析的库,可使用
optparse
Gem来解析命令行参数。它可以方便地处理长选项(如--verbose
)和短选项(如-v
)。 - 设置默认值:为并发数设置一个合理的默认值,以防用户未指定。
- 解析逻辑:解析命令行参数,识别长选项和并发数参数,并处理图片路径参数。
关键代码片段
require 'optparse'
options = {
verbose: false,
concurrency: 1 # 默认并发数为1
}
optparse = OptionParser.new do |opts|
opts.banner = "Usage: your_script.rb [options] image_path1 image_path2 ..."
opts.on('-v', '--verbose', '启用详细输出') do
options[:verbose] = true
end
opts.on('-c', '--concurrency CONCURRENCY', Integer, '指定处理图片的并发数') do |concurrency|
options[:concurrency] = concurrency
end
end
optparse.parse!
image_paths = ARGV
if image_paths.empty?
$stderr.puts "错误: 未指定图片路径"
$stderr.puts optparse
exit 1
end
# 使用解析后的选项
if options[:verbose]
puts "详细输出模式已启用"
end
puts "并发数设置为: #{options[:concurrency]}"
# 处理图片逻辑
image_paths.each do |path|
# 这里放置处理图片的实际代码,例如使用合适的图片处理库
puts "处理图片: #{path} (并发数: #{options[:concurrency]})"
end
此代码首先设置了默认选项,然后使用 OptionParser
解析命令行参数。它处理了 --verbose
选项来启用详细输出,并使用 --concurrency
选项来设置并发数。最后,它获取并验证了图片路径参数,并可以在后续逻辑中使用解析后的选项来处理图片。