gpt4 book ai didi

go - 使用反射获取函数名称

转载 作者:IT老高 更新时间:2023-10-28 13:04:00 26 4
gpt4 key购买 nike

我正在尝试使用 Go 的反射系统来检索函数的名称,但在调用其类型的 Name 方法时得到一个空字符串。这是预期的行为吗?

这是我如何解决问题的一个简单示例:

package main

import "fmt"
import "reflect"

func main() {
typ := reflect.TypeOf(main)
name := typ.Name()
fmt.Println("Name of function" + name)
}

最佳答案

解决方法是使用FuncForPc它返回一个 *Func.

这会返回 "main.main" :

package main

import "fmt"
import "reflect"
import "runtime"


func main() {
name := runtime.FuncForPC(reflect.ValueOf(main).Pointer()).Name()
fmt.Println("Name of function : " + name)
}

如果你想要 "main",只需对其进行标记。

关于go - 使用反射获取函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10742749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com