简单的 godoc 你好世界

SIMPLE godoc Hello world

尝试在一个简单的平面代码文件夹上提供 godoc。在线文档没有解释如何完成这个简单的任务。

所以,创建这个简单的结构,

/tmp/testgodoc$ tree
.
└── src
    ├── main  (just the binary)
    └── main.go

1 directory, 2 files

其中 main.go 就是

/tmp/testgodoc$ cat src/main.go
// Hello godoc
package main

import "fmt"

// Say Hello
func main() {
    fmt.Println("Hello")
}

当 运行 在 GOPATH 或模块模式下时,在浏览器中打开 localhost:6060 不会给出记录当前文件夹的预期结果。

运行 在模块模式下给出这个输出和结果:

/tmp/testgodoc$ ~/go/bin/godoc  -goroot=. -http=:6060
using module mode; GOMOD=/dev/null
(when Ctrl-C:) cannot find package "." in:
        /src/main
^C

而GOPATH模式下的运行好像指向本地标准库:

/tmp/testgodoc$ GO111MODULE=off ~/go/bin/godoc  -goroot=. -http=:6060
using GOPATH mode
^C

你应该把你的主包放到一个子目录中,可能是这样的:

~/go/src/testGoDoc$ tree
├── cmd
│   └── main.go
├── go.mod
└── pkg
    └── test1
        └── test_package.go

通过这个你可以运行两个命令:

godoc -http=:6060 #http://localhost:6060/pkg/<module name inside go.mod>/

GO111MODULE=off godoc -http=:6060 #http://localhost:6060/pkg/testGoDoc/