为了账号安全,请及时绑定邮箱和手机立即绑定

我可以打印分配给变量的函数的名称吗?

我可以打印分配给变量的函数的名称吗?

Go
梦里花落0921 2022-09-19 21:11:42
有没有办法将[分配给变量]的函数的名称Printf?从游乐场出发:func hello(name string) string {    return fmt.Sprintf("Hello, %s", name)}func main() {    testFunc := hello    fmt.Println(testFunc("DoubleNNs"))    fmt.Printf("%v", testFunc)}/*Output:./prog.go:14:2: Printf format %v arg testFunc is a func value, not calledGo vet exited.Hello, DoubleNNs0x499200Program exited.*/我找到了指导如何打印被调用函数名称的答案,但不要获取任意函数的字符串表示形式。
查看完整描述

1 回答

?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

可以使用反射包来获取函数,然后将其传递给运行时。用于获取有关函数的信息。uintptr

runtime.FuncForPC(reflect.ValueOf(testFunc).Pointer()).Name()

https://play.golang.org/p/T3pmjd6ds1i


查看完整回答
反对 回复 2022-09-19
  • 1 回答
  • 0 关注
  • 57 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信