golang 如何获取底层类型名称?

golang 如何获取底层类型名称?

举个例子:

func Hello(w http.ResponseWriter, r *http.Request) {
    io.WriteString(w, "hello")
}

h := http.HandlerFunc(Hello)

http.HandleFunc("/hello", h)

这里通过反射 h 我只会拿到其名称 HandlerFunc,而我想拿到 h 底层类型名称 Hello 应该怎么做?

阅读 3.8k
2 个回答

可以拿到,代码如下:

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

有什么需求需要这么做吗?

Hello函数,编译完就是个地址,需要Hello 这个标识做什么?

所以我觉得取不到Hello这个标识.

你可以将编译好的程序,通过 strings 命令看下是否能拿到标识符。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题