如何搜索Go文档?

时间:2013-07-13 10:06:41

标签: go

文档很棒,但有时很难找到特定的关键字。例如,搜索Next()会在此页http://golang.org/search?q=next%28%29中生成一个不太有用的内容。有没有更好的方法来搜索文档?

3 个答案:

答案 0 :(得分:4)

  • 请勿在查询中包含括号。
  • 仅按首字母大写搜索导出的标识符。

搜索Next会获得更好的结果集IMO。

顺便说一句,旧技术仍然很强大; - )

jnml@fsc-r630:~/go/src/pkg$ egrep -nr '^func \([^)]+\) Next\(' *
archive/tar/reader.go:42:func (tr *Reader) Next() (*Header, error) {
bytes/buffer.go:273:func (b *Buffer) Next(n int) []byte {
container/ring/ring.go:26:func (r *Ring) Next() *Ring {
container/list/list.go:31:func (e *Element) Next() *Element {
database/sql/fakedb_test.go:658:func (rc *rowsCursor) Next(dest []driver.Value) error {
database/sql/sql.go:1300:func (rs *Rows) Next() bool {
debug/dwarf/entry.go:310:func (r *Reader) Next() (*Entry, error) {
net/smtp/auth.go:75:func (a *plainAuth) Next(fromServer []byte, more bool) ([]byte, error) {
net/smtp/auth.go:99:func (a *cramMD5Auth) Next(fromServer []byte, more bool) ([]byte, error) {
net/textproto/pipeline.go:36:func (p *Pipeline) Next() uint {
reflect/all_test.go:3390:func (x *exhaustive) Next() bool {
text/scanner/scanner.go:302:func (s *Scanner) Next() rune {
jnml@fsc-r630:~/go/src/pkg$ 

答案 1 :(得分:2)

这非常有效:

func ([(][^)]+[)] )?[N]ext

如果您想要不区分大小写的搜索,请使用

func ([(][^)]+[)] )?next

答案 2 :(得分:2)

Rob Pike为此写了一个完美的工具。使用go安装它:

go get code.google.com/p/rspace.cmd/doc

然后,您可以说doc next(或doc Next)并在所有包中获得一个很棒的Next函数列表,以及它们的文档和签名。如果您知道包裹的名称,则可以说doc sql nextdoc sql.next。您甚至可以通过-url在线获取该文档的URL,或-src获取该符号实现的文件名和行号。

您可以使用-pkg doc -pkg json访问包文档(显示在包裹页面顶部且不属于其任何项目的文档)。

doc搜索所有内容,您可以将其限制为仅搜索函数,接口,变量等。运行它而不使用参数来获取文档。

这是一个很棒的工具。当你在Go中写作时,请保持密切。