Google Apps脚本脚本中的最大递归深度是多少?我有一个函数match_recurse
,它看起来像下面的伪代码:
function match_recurse(array) {
for (i=0, i<3, i++) {
var arr2 = array.copy().push(i);
if (is_done(arr2)) break;
match_recurse(arr2);
}
}
(它也会返回结果,但我不想讨论这个问题。)
现在,由于执行错误,执行记录和日志未保存,因此我无法知道我的is_done
函数是否正在执行其错误的工作。我可以在纸上做一些问题并检查递归深度,但我不知道最大值应该是多少。
在网上看到,我看到一篇文章提到如果你浏览Window对象,IE的最大调用堆栈为13,但没有别的。
答案 0 :(得分:2)
这是1000,正如从这里可以看到的那样:
function recurse(i) {
var i = i || 1;
try {
recurse(i+1);
} catch (e) {
Logger.log(i);
}
}
答案 1 :(得分:2)
未记录堆栈深度值。执行以下代码表明此值等于1000。
function getStackDepth(curvalue) {
try {
curvalue = getStackDepth(curvalue) + 1;
}
catch(err) {
}
return curvalue;
}
function test() {
var depth = getStackDepth(2);
debugger;
}