当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Kernel.caller用法及代码示例


本文简要介绍ruby语言中 Kernel.caller 的用法。

用法

caller(start=1, length=nil) → array or nil
caller(range) → array or nil

返回当前执行堆栈——一个包含 file:linefile:line: in `method' 形式的字符串的数组。

可选的start 参数确定要从堆栈顶部省略的初始堆栈条目数。

第二个可选的length 参数可用于限制从堆栈返回的条目数。

如果 start 大于当前执行堆栈的大小,则返回 nil

您可以选择传递一个范围,该范围将返回一个包含指定范围内条目的数组。

def a(skip)
  caller(skip)
end
def b(skip)
  a(skip)
end
def c(skip)
  b(skip)
end
c(0)   #=> ["prog:2:in `a'", "prog:5:in `b'", "prog:8:in `c'", "prog:10:in `<main>'"]
c(1)   #=> ["prog:5:in `b'", "prog:8:in `c'", "prog:11:in `<main>'"]
c(2)   #=> ["prog:8:in `c'", "prog:12:in `<main>'"]
c(3)   #=> ["prog:13:in `<main>'"]
c(4)   #=> []
c(5)   #=> nil

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Kernel.caller。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。