在Go语言中,可以使用runtime.Caller()函数来获取执行函数所在的文件和行号。

下面是一个简单的示例代码:

package main

import (
	"fmt"
	"path/filepath"
	"runtime"
)

func main() {
	printCallerInfo()
}

func printCallerInfo() {
	// 获取调用者的信息
	_, file, line, ok := runtime.Caller(1)
	if !ok {
		fmt.Println("Failed to get caller info")
		return
	}

	// 获取文件名
	filename := filepath.Base(file)

	fmt.Printf("Caller info: %s:%d\n", filename, line)
}

在上面的代码中,runtime.Caller(1)表示获取调用printCallerInfo()函数的调用者的信息。然后,使用filepath.Base()函数获取文件名,并将文件名和行号打印出来。

输出结果类似于:

Caller info: main.go:9

这表示printCallerInfo()函数在main.go文件的第9行被调用

golang 获取执行函数所在文件

原文地址: https://www.cveoy.top/t/topic/iMK2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录