Project1

标题: "stack level too deep" 错误 [打印本页]

作者: 沉影不器    时间: 2008-5-11 23:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: orochi2k    时间: 2008-5-11 23:14
前者递归一层层挖下去内存有一些干活,一些保存上次的函数中断前内容...多了几次就没内存了..
后者跌代,内存专心干活不用存杂七杂八的东西...于是那么几次没关系
作者: 3535    时间: 2008-5-11 23:18
  def self.fact(numb)
    for i in 1...numb
      numb *=  i
    end
    return numb
  end


Math.fact(5132)


………{/fd}

作者: orochi2k    时间: 2008-5-11 23:21
以下引用3535于2008-5-11 15:18:29的发言:


def self.fact(numb)
   for i in 1...numb
     numb *=  i
   end
   return numb
end


Math.fact(5132)


………

这个...还是跌代...-_-0
作者: Infrared    时间: 2008-5-11 23:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: link006007    时间: 2008-5-12 00:57
递归调用函数就会一直压栈...
而迭代等循环没有函数调用, 就不会压栈
作者: 沉影    时间: 2008-5-12 01:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: OCTSJimmy    时间: 2008-5-12 01:12
Ruby本来就是为了面向对象而产生的……
至于说它的递归弱……不如说它的内存应用效率不高……{/lh}
作者: link006007    时间: 2008-5-12 03:38
递归调用,先前的函数都没有结束   值当然在的咯, 不然怎么会压栈,先进后出 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1