在 Go 中检索源代码文件名和行号
在 C/C 等编程语言中,开发人员可以利用 FILE 和 LINE 获取当前源代码文件路径和行号。 Go 是否提供类似的功能?
答案:
当然可以。 Go 提供了一个名为 runtime.Caller 的内置函数来访问当前函数的源代码文件名和行号。
实现:
利用运行时。调用者,您可以使用可选的整数参数来调用它:
func GetSourceInfo(skip int) (string, int) { _, thisFile, thisLine, ok := runtime.Caller(skip) if !ok { return "", 0 } return thisFile, thisLine }
skip 参数指定调用堆栈向上的层数上升。例如,skip=0 将返回当前函数的源信息,skip=1 将返回当前函数调用者的源信息,依此类推。
用法示例:
import ( "fmt" "runtime" ) func main() { file, line := GetSourceInfo(1) fmt.Println("Calling function:", file, line) }
输出:
Calling function: /path/to/my/file.go 12
以上是Go中如何获取源代码文件名和行号?的详细内容。更多信息请关注PHP中文网其他相关文章!