【问题标题】:Get package name for a function in go language获取 Go 语言中函数的包名
【发布时间】:2015-07-07 22:30:42
【问题描述】:

我需要在 Go 中获取一个函数的包名。 例如,如果Println 是输入,那么输出必须是fmt。如果StatusText 是输入,那么输出必须是net/http

实现这一目标的正确方法是什么?

【问题讨论】:

  • 如果您添加为什么需要此功能的信息,您可能会得到更好的答案。你检查过godoc.org/golang.org/x/tools/cmd/godoc吗?
  • 我只需要获取函数的文档。但问题是我只知道函数名而不知道它所属的包。
  • 试试godoc -q Println | sed -n -e '/Functions/,$p' | head -n 2

标签: go packages


【解决方案1】:

从您的评论来看,您似乎正在寻找像 godoc 这样的命令行工具,但它不需要像 godoc net/http StatusText 这样的东西,您希望能够只使用 doc StatusText 并让它找到 http.StatusText为您服务(可能还有其他 foo.StatusText 函数)。

Rob Pike 的doc 工具可以做到这一点,它会查看您的GOPATH 中的所有包。 (尽管它的输出不仅仅是您原始问题所要求的包名称)。

您可以通过go install robpike.io/cmd/doc 获取并安装doc

或者您实际上是在寻找一种从 Go 代码中而不是命令行中获取这些信息的方法?

【讨论】:

  • 请注意,文档工具将成为即将发布的 Go 1.5 版本的一部分,因此使用标准版本您将能够编写“go doc Println”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 2013-11-28
  • 2011-10-22
  • 1970-01-01
相关资源
最近更新 更多