问题:
是否可以以编程方式在 Go 中检索函数名称?例如,给定函数 foo(),我们可以使用像 GetFunctionName(foo) 这样的方法来确定它的名称吗?
答案:
是的,可以使用runtime.FuncForPC获取Go中函数的名称函数。
解决方案:
这是一个使用的解决方案runtime.FuncForPC:
package main import ( "fmt" "reflect" "runtime" ) func foo() {} func GetFunctionName(i interface{}) string { return runtime.FuncForPC(reflect.ValueOf(i).Pointer()).Name() } func main() { fmt.Println("name:", GetFunctionName(foo)) }
说明:
通过调用 GetFunctionName(foo),您将获得字符串“foo”作为结果。
以上是Go 可以通过编程方式检索函数名称吗?的详细内容。更多信息请关注PHP中文网其他相关文章!