在Golang中,可以使用runtime包中的Caller函数来获取当前函数的调用栈信息。然后通过runtime.FuncForPC函数可以获取到函数的名称。

以下是一个示例代码:

package main

import (
	"fmt"
	"runtime"
)

func main() {
	subFunc()
}

func subFunc() {
	fmt.Println(getCallerFuncName())
}

func getCallerFuncName() string {
	pc, _, _, _ := runtime.Caller(1)
	function := runtime.FuncForPC(pc)
	return function.Name()
}

在上面的示例中,getCallerFuncName函数使用了runtime.Callerruntime.FuncForPC函数来获取调用者的函数名称。然后在subFunc函数中调用getCallerFuncName函数来打印父函数的名称。

运行上述代码,输出结果为:

main.subFunc

表示subFunc函数是由main函数调用的

golang 函数打印父函数名称

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

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