概述
原地址是这里,我摘抄一部份.https://colobu.com/2018/11/03/get-function-name-in-go/
"有时候在Go的函数调用的过程中,我们需要知道函数被谁调用,比如打印日志信息等。例如下面的函数,我们希望在日志中打印出调用者的名字。"
其实我可能的应用是根据调用的函数名来导向不同的逻辑.
package main
import (
"fmt"
"runtime"
)
func main() {
Foo()
}
func Foo() {
fmt.Printf("我是 %s, %s 在调用我!n", printMyName(), printCallerName())
Bar()
}
func Bar() {
fmt.Printf("我是 %s, %s 又在调用我!n", printMyName(), printCallerName())
}
func printMyName() string {
pc, _, _, _ := runtime.Caller(1)
return runtime.FuncForPC(pc).Name()
}
func printCallerName() string {
pc, _, _, _ := runtime.Caller(2)
return runtime.FuncForPC(pc).Name()
}
可以通过runtime.Caller
、runtime.Callers
、runtime.FuncForPC
等函数更详细的跟踪函数的调用堆栈.
不过暂时用不上,所以就不转后面部份了.有兴趣的看原地址.
最后
以上就是落后钢笔为你收集整理的Go的函数中得到调用者函数名的全部内容,希望文章能够帮你解决Go的函数中得到调用者函数名所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复