Ruby中有没有办法计算方法被调用的次数?我知道caller.first
会为您提供文件名,行号和来电方式名称,但无法找到任何进一步的相关信息。
答案 0 :(得分:5)
每当调用方法时,使用TracePoint
运行代码块,然后根据方法名称进行过滤。
def foo() end
count = 0
name = :foo
TracePoint.trace(:call) do |t|
count += 1 if t.method_id == name
end
count # => 0
foo
count # => 1
foo
count # => 2
count
这里只是一个由.trace
块关闭的局部变量。您可以将其调整为常量或实例变量,或者最适合您的用例。