获取 go 执行代码的 文件名, 以及路径的方法:
package main
import (
"fmt"
"path"
"runtime"
)
func getInfo(n int) {
pc, file, line, ok := runtime.Caller(n)
if !ok {
fmt.Println("runtime.caller() failed\n")
return
}
funcName := runtime.FuncForPC(pc).Name()
fmt.Println("-------------")
fmt.Println(funcName)
fmt.Println(file)
fmt.Println(path.Base(file)) // 获取文件名
fmt.Println(line)
}
func f2() {
getInfo(0) // 获取函数名, 用 0,1,2 多测试一下
}
func main() {
f2()
}
结果: