Ruby 为什么我将此错误堆栈级别设置得太深(SystemStackError)
试图计算特朗普当选时用户的年龄Ruby 为什么我将此错误堆栈级别设置得太深(SystemStackError),ruby,Ruby,试图计算特朗普当选时用户的年龄 def trump prompt year_born = trump(prompt) year_born = 2016 - year_born.to_i return year_born.to_s end age_when_trump_elected = trump('what year were you born?') puts name + ' you were ' + age_when_trump_elected + ' yea
def trump prompt
year_born = trump(prompt)
year_born = 2016 - year_born.to_i
return year_born.to_s
end
age_when_trump_elected = trump('what year were you born?')
puts name + ' you were ' + age_when_trump_elected + ' years old when Trump got elected'
问题在于:
def trump prompt
year_born = trump(prompt)
在方法的第一行中,递归地一次又一次地调用自己。方法调用在堆栈上分配帧,堆栈迟早会耗尽
您想要的可能是从用户的输入中获取值:
def trump prompt
print prompt
year_born = gets.to_i
...
问题在于:
def trump prompt
year_born = trump(prompt)
在方法的第一行中,递归地一次又一次地调用自己。方法调用在堆栈上分配帧,堆栈迟早会耗尽
您想要的可能是从用户的输入中获取值:
def trump prompt
print prompt
year_born = gets.to_i
...
是的,这更有意义。看起来我真的不明白他想做什么是的,这更有意义。看来我真的不明白他想干什么