如何在Ruby的方法中使用ARGV?求简单示例
Ruby中在方法里使用ARGV的示例
首先要明确:ARGV是Ruby内置的全局数组,专门用来存储你运行脚本时传入的命令行参数,不需要把它当作方法的参数名来定义(你的代码里把ARGV写进方法参数里是错误的用法)。
你的错误代码示例
def greet(ARGV) puts "Hello #{ARGV}" end
这里的问题是把全局变量ARGV当成了自定义参数名,方法参数应该用普通变量名(比如name),而ARGV本身可以直接在方法内外调用。
正确的基础用法示例
直接在方法里调用全局的ARGV:
def greet # ARGV[0]对应第一个命令行参数,ARGV[1]是第二个,以此类推 puts "Hello #{ARGV[0]}" end # 调用方法 greet
运行方式:在命令行执行 ruby 你的脚本名.rb 张三,会输出 Hello 张三。
更通用的用法:把ARGV元素传给方法
如果想让方法不依赖全局变量、更灵活,可以把ARGV里的元素作为参数传给方法:
def greet(name) puts "Hello #{name}!" end # 先检查有没有传入参数 if ARGV.empty? puts "请在运行脚本时传入一个名字参数,比如:ruby 脚本名.rb 李四" else greet(ARGV[0]) end
运行时如果不传参数,会提示你传入;传了参数就会输出对应的问候语。
处理多个参数的示例
如果要一次性处理多个命令行参数:
def greet_group(names) names.each do |name| puts "Hi, #{name}!" end end # 把整个ARGV数组传给方法 greet_group(ARGV)
运行方式:执行 ruby 脚本名.rb 王五 赵六 孙七,会依次输出对每个人的问候。
内容的提问来源于stack exchange,提问作者yatin
相关产品推荐
相关产品推荐

