介紹
- godoc 是 golang 自帶的文檔查看器,更多的提供部署服務(wù)
- go doc 和 godoc 在 golang 1.13 被移除了,可以自行安裝 golang.org go1.13 godoc
go get golang.org/x/tools/cmd/godoc
# 使用代理安裝
GOPROXY=https://mirrors.aliyun.com/goproxy/ GO111MODULE=on go get golang.org/x/tools/cmd/godoc
godoc
- godoc 基礎(chǔ)使用
# 查看包內(nèi)的文檔,這里是查看 fmt 包中 Printf Println 的的文檔
godoc fmt Printf Println
# 查看文檔并包含源碼
godoc -src fmt Printf
# 查看的同時顯示示例代碼
godoc -ex fmt Printf
# 顯示文檔的web版本 http -> 端口
godoc -http=:6060
# 顯示 http 文檔并開啟本地索引
godoc -http=:6060 -index
要使用-index標記開啟搜索索引,這個索引會在服務(wù)器啟動時創(chuàng)建并維護。
否則無論在Web頁面還是命令行終端中提交查詢都會返回錯誤"Search index disabled: no results available"
如果不想提供如此多的結(jié)果條目,可以設(shè)置小一些的值
甚至,如果不想提供全文本搜索結(jié)果,可以將標記
-maxresults的值設(shè)置為0,這樣服務(wù)器就只會創(chuàng)建標識符索引,而根本不會創(chuàng)建全文本搜索索引
標識符索引即為對程序?qū)嶓w(變量、常量、函數(shù)、結(jié)構(gòu)體和接口)名稱的索引
- go doc 這個是golang語言自帶的文檔查看工具
# 文檔工具使用說明
go help doc
# 查看當前包的文檔索引
go doc
# 查看目標包的文檔索引
go doc [targetPackage]
# 查看目標包的某內(nèi)容的文檔索引
go doc [targetPackage].[函數(shù)名]
# 或者空格隔開也顯示某內(nèi)容的文檔
go doc [targetPackage] [函數(shù)名]
# 子包的文檔注釋
go doc [targetPackage]/[subpackage]
golang發(fā)布查詢代碼注釋文檔
發(fā)布文檔
godoc -http=:9090 -index
這樣就在本機使用 http://127.0.0.1:9090/pkg/ 查看發(fā)布的包
當然你可以使用 http://127.0.0.1:9090/pkg/github.com/github.com/sinlov/XXXServer/userbiz/ 來查詢自己代碼 包 github.com/sinlov/XXXServer/userbiz 下面的文檔
查詢發(fā)布文檔
通過 godoc -q 命令查詢發(fā)布文檔服務(wù),一般用于在另一個命令行終端甚至另一臺能夠與本機聯(lián)通的計算機中通過如下命令進行查詢
# 在本機用godoc命令啟動了Go文檔Web服務(wù)器,且IP地址為192.168.2.201、端口為9090
godoc -q -server="192.168.2.201:9090" Listener
- 標記
-q開啟了遠程查詢的功能 - 標記
-server="192.168.2.201:9090"則指明了遠程文檔服務(wù)器的IP地址和端口號
如果不指明遠程查詢服務(wù)器的地址,那么該命令會自行將地址 :6060 和 golang.org 作為遠程查詢服務(wù)器的地址
這個地址 golang.org:6060 即是默認的本機文檔Web站點地址和官方的文檔Web站點地址
golang 代碼文檔管理
代碼文檔編寫
其實只要按 go 的標準注釋寫法編寫,就可以顯示代碼文檔了
比如 定義在 github.com/sinlov/XXXServer/userbiz 種有個文件 biz.go
// Biz implements a business
type Biz struct {
}
// business initialization
func (b *Biz) Init() {
}
注意
//后面跟空格,才開始解析文檔如果需要展示代碼需要
//后緊跟[[:tab]]tab,那么 go doc 就會把這行當做代碼來看
可惜的是,go沒法自行在注釋里面添加使用鏈接,而是解析器跟蹤使用來生成鏈接
查看這個代碼的文檔命令就是 godoc github.com/sinlov/XXXServer/userbiz
查看某個函數(shù)的文檔,比如 Init 函數(shù) 就是 godoc github.com/sinlov/XXXServer/userbiz Init
代碼文檔導(dǎo)出
就使用上面文章中提到的 godoc -q -server= 指令,直接部署在服務(wù)器中就行