【发布时间】:2011-01-30 03:02:44
【问题描述】:
在 ruby 中递归调用时如何知道当前方法堆栈帧?
【问题讨论】:
-
能否请您发布您的代码,否则答案再好不过了:您每次通话分配的空间
在 ruby 中递归调用时如何知道当前方法堆栈帧?
【问题讨论】:
我不知道您为什么需要它,但 caller.size 应该可以完成这项工作:
def recurse(n)
puts caller.size
recurse(n-1) unless n <= 0
end
recurse(5) # => Outputs 1 to 6
这在 Ruby 1.9 中有效,但在 Ruby 1.8 中显然存在一个错误。刚刚提交了on redmine。
【讨论】: