本文简要介绍ruby语言中 Kernel.caller
的用法。
用法
caller(start=1, length=nil) → array or nil
caller(range) → array or nil
返回当前执行堆栈——一个包含 file:line
或 file: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 Kernel.catch用法及代码示例
- Ruby Kernel.class用法及代码示例
- Ruby Kernel.clone用法及代码示例
- Ruby Kernel.local_variables用法及代码示例
- Ruby Kernel.Integer用法及代码示例
- Ruby Kernel.binding用法及代码示例
- Ruby Kernel.frozen?用法及代码示例
- Ruby Kernel.`cmd`用法及代码示例
- Ruby Kernel.autoload用法及代码示例
- Ruby Kernel.loop用法及代码示例
- Ruby Kernel.Hash用法及代码示例
- Ruby Kernel.set_trace_func用法及代码示例
- Ruby Kernel.exit!用法及代码示例
- Ruby Kernel.trap用法及代码示例
- Ruby Kernel.String用法及代码示例
- Ruby Kernel.select用法及代码示例
- Ruby Kernel.syscall用法及代码示例
- Ruby Kernel.then用法及代码示例
- Ruby Kernel.sprintf用法及代码示例
- Ruby Kernel.Pathname用法及代码示例
- Ruby Kernel.srand用法及代码示例
- Ruby Kernel.yield_self用法及代码示例
- Ruby Kernel.BigDecimal用法及代码示例
- Ruby Kernel.raise用法及代码示例
- Ruby Kernel.test用法及代码示例
注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Kernel.caller。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。