检测递归调用

saw*_*awa 5 ruby recursion

检测递归方法调用的最佳方法是什么?或许,可以做成这样的格式:

def foo
  if some_code_to_detect_recursive_call
    ...
  else
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

我可以想出一种解析caller信息的方法,但我有兴趣看看是否有更好的方法。

Dig*_*oss 4

只需在进入方法后增加一个计数器(实例或全局变量)并在退出时减少它。

在输入时,计数器会告诉您递归级别。