我想将命令行参数传递给程序,然后在我正在调用但已收到undefined local variable or method error player_name
的方法中引用该参数。
我是Ruby的新手,所以这可能是一个基本问题,但是我尝试了解如何正确使用ARGV。 是否不可能在方法中使用用户提供的输入作为命令行参数,然后再调用此方法?我想念什么?
player_name = ARGV.first
def start
puts "Hey #{player_name}, do you want to go left or right?"
print "> "
end
start
答案 0 :(得分:1)
您对ARGV
的使用是正确的。 player_name
方法中没有简单定义start
。如果您想让方法传递给变量
def start(player_name)
puts "Hey #{player_name}, do you want to go left or right?"
print "> "
end
first_argument = ARGV.first
start(first_argument)
注意:我更改了变量名称并移动了一行以向您显示它们不是相同的变量。您正在传递它。我想现在更清楚了
答案 1 :(得分:0)
除了先前的答案外,Ruby中的变量范围的这种解释:https://www.natashatherobot.com/ruby-variable-scope/