作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我创建递归方法时,我通常会包含一个深度参数,尤其是当我需要某种救助机制时。代码通常是这样的
procedure Recurse(<Params>; aDepth : integer = 0);
begin
if aDepth > SomeLimit then
begin
//Tidy up, return best result found>
exit;
end;
<stuff>
if <Condition> then
Recurse(<Params>; aDepth+1)
else
begin
//Tidy up, return result of endnode>
end;
end;
我在没有深度参数的情况下调用它
Recurse(<Params>);
有没有其他方法可以轻松找到深度?
最佳答案
如果您有办法遍历堆栈并查看您的函数的入口点在其中的次数,我想您可以那样做。但是随后您会注意到您的 aDepth 参数也在那里,并且您会意识到 aDepth 比窥探堆栈更容易,也更少麻烦。IMO,简单的解决方案在这里是最好的,它是可移植的和面向 future 的,不像你能发明的任何堆栈监听解决方案。
所以是的,还有其他方法,但 IMO,你原来的解决方案是最好的。
关于delphi - 在德尔福 : How can I find the recursion depth without using a parameter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3777986/
我是一名优秀的程序员,十分优秀!