如何在 Ruby(不是 Rails)中将变量调用到方法
How do I call a variable to a method in Ruby (NOT Rails)
people = {}
def add
puts "Enter the name of the person you would like to add in the database."
name = gets.chomp.to_s
if people[name].nil?
puts "What is #{name}'s age?"
age = gets.chomp.to_i
people[name] = age.to_i
end
puts "Would you like to add?"
choice = gets.chomp
if choice == "yes"
add
end
end
所以有人在我的方法之外 "add",我得到一个错误 "undefined local variable or method `people' for main: Object (NameError)"
people[name].nil 时我收到错误提示?线来了。
我必须创建一个数据库,我有更多方法,如更新和删除,我如何在这些方法中使用/调用 "people"?
全局变量在Ruby中应该有$
前缀,所以你需要$people
代替people
。或者,您可以将 people
传递给 add
函数。
正如 theTinMan 所指出的,正确的解决方案是通过将 people
传递给您的函数来重构您的代码,从而首先避免使用全局变量:
def add(people)
...
people = {}
def add
puts "Enter the name of the person you would like to add in the database."
name = gets.chomp.to_s
if people[name].nil?
puts "What is #{name}'s age?"
age = gets.chomp.to_i
people[name] = age.to_i
end
puts "Would you like to add?"
choice = gets.chomp
if choice == "yes"
add
end
end
所以有人在我的方法之外 "add",我得到一个错误 "undefined local variable or method `people' for main: Object (NameError)"
people[name].nil 时我收到错误提示?线来了。
我必须创建一个数据库,我有更多方法,如更新和删除,我如何在这些方法中使用/调用 "people"?
全局变量在Ruby中应该有$
前缀,所以你需要$people
代替people
。或者,您可以将 people
传递给 add
函数。
正如 theTinMan 所指出的,正确的解决方案是通过将 people
传递给您的函数来重构您的代码,从而首先避免使用全局变量:
def add(people)
...