def test(v) test(v-1) if v > 0 p vend
如果我打电话给测试(11893)它工作正常.
如果我有v> 11893,它正在抛出SystemStackerror.
如何增加此错误的限制?
RubyVM::InstructionSequence.compile_option = { tailcall_optimization: true,trace_instruction: false}
此外,代码本身必须使用尾递归:
def test(v) return unless v > 0 p v test(v-1) end总结
以上是内存溢出为你收集整理的Ruby:堆栈级别太深(SystemStackError)maxlimit全部内容,希望文章能够帮你解决Ruby:堆栈级别太深(SystemStackError)maxlimit所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)