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
  ...

是的,这更有意义。看起来我真的不明白他想做什么是的,这更有意义。看来我真的不明白他想干什么