由于我无法安装外部宝石,我编写了一个使用[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationPortrait;
作为参数的程序。
到目前为止我所做的是:
ARGV
这对我来说似乎并不惯用。所以我的问题是,是否有正确的方法来解析Ruby脚本中的if ARGV[0] == '-h'
puts "Help page"
elsif ARGV[0] == '--example'
puts "Examples page"
elsif ARGV[0] == '-t'
puts "Gathering intel"
elsif ARGV[0] == '--version'
puts "Version mode"
elsif ARGV[0] == '--dev-mode'
puts "developer mode"
else
puts "Help page"
end
参数?我已经做了一些研究,并看到人们使用ARGV
等等,这是Ruby世界中的“首选”吗?
答案 0 :(得分:5)
OptionParser
可能是可能复杂的参数列表的正确选择。
关于你的代码,我会这样重写:
puts case ARGV[0]
when '-h' then "Help page"
when '--example' then "Examples page"
...
end
以下是一项干预原则:一个puts
,因为每个分支只有puts
,ARGV[0]
只提到一次等。
Array#shift
是有意义的,除非它是空的,因为它从数组中删除了元素。在伪代码中可能看起来像:
while opt = ARGV.shift do
puts case opt
when '-h' then 'Help requested'
when '-f'
file = ARGV.shift # requires subsequent arg
# possible check for value is valid
do_smth_with_file file
...
end
end