站長資訊網
最全最豐富的資訊網站

golang怎么獲取注釋內容

在golang中,可以使用godoc工具來提取注釋內容。godoc工具會從Go程序和包文件中提取頂級聲明的首行注釋以及每個對象的相關注釋,并生成相關文檔,也可以作為一個提供在線文檔瀏覽的web服務器。

golang怎么獲取注釋內容

本教程操作環境:windows10系統、GO 1.18版本、Dell G3電腦。

在golang中,可以使用godoc工具來提取注釋內容。

godoc工具

godoc 工具會從 Go 程序和包文件中提取頂級聲明的首行注釋以及每個對象的相關注釋,并生成相關文檔,也可以作為一個提供在線文檔瀏覽的 web 服務器,Go語言官網(https://golang.google.cn/)就是通過這種形式實現的。

需要注意:Go語言 1.13 版本移除了 godoc 工具,大家可以通過go get 命令來獲取 godoc 工具。

go get golang.org/x/tools/cmd/godoc
登錄后復制

由于防火墻的原因,國內的用戶可能無法通過go get 命令來獲取 godoc 工具,這時候就需要大家來手動操作了。

  • 首先從 GitHub(https://github.com/golang/tools.git) 下載 golang.org/x/tools 包;

  • 然后將下載得到的文件解壓到 GOPATH 下的 srcgolang.orgxtools 目錄中,沒有的話可以手動創建;

  • 打開 GOPATH 下的 srcgolang.orgxtoolscmdgodoc 目錄,在該目錄下打開命令行工具,并執行go build 命令,生成 godoc.exe 可執行文件;

  • 最后,將生成的 godoc.exe 文件移動到 GOPATH 下的 bin 目錄中。(需要把 GOPATH 下的 bin 目錄添加到環境變量 Path 中)

golang怎么獲取注釋內容

完成上述操作后就可以使用 godoc 工具了,godoc 工具一般有以下幾種用法:

  • go doc package:獲取包的文檔注釋,例如go doc fmt 會顯示使用 godoc 生成的 fmt 包的文檔注釋;

  • go doc package/subpackage:獲取子包的文檔注釋,例如go doc container/list

  • go doc package function:獲取某個函數在某個包中的文檔注釋,例如go doc fmt Printf 會顯示有關 fmt.Printf() 的使用說明。

godoc 工具還可以獲取 Go 安裝目錄下 ../go/src 中的注釋內容,并將這些注釋內容整合到 web 服務器中供我們預覽。在命令行輸入godoc -http=:6060,然后使用瀏覽器打開 http://localhost:6060 后,就可以看到本地文檔瀏覽服務器提供的頁面。

golang怎么獲取注釋內容

godoc的使用

在終端查看

在終端,進入要查看的包的目錄go doc顯示當前包的文檔

這里查看的是包名的文檔,以及所有的函數名字跟變量類型名

example:     go doc      terminal show:     package test // import "test/testdoc"     這個是a.go的包名的描述       At 20191017 by Baiyu          ---a.go end---          這個是在doc.go 文件中的內容          在Go的源代碼中          在Mac系統中          在類Unix系統中          在Windows系統中          ---doc.go end---          這個是在testgodoc.go文件的內容 package Name: test              describe:    程序的入口          ---testgodoc.go end---          這個是z.go 的包名描述          ---z.go end---          const Email ...     const Baiyu = "baiyu"     func H(h1 string, h2 string) (reValue string)     func Test(param1 string, inter int) (k string)     func Z()     type Computer struct{ ... }     type Person struct{ ... }          BUG: 這個注釋會生成在文檔最后后面,同時因為緊跟著fun Z,所以在上面的func列表里面也有顯示     功能: 生成Z簽名          BUG: 因為前面有BUG(who)這個關鍵字,所以這句注釋就算沒有緊跟關鍵字不會被隱藏掉          BUG: BUG(6):格式正確,所以這句注釋就算沒有緊跟關鍵字不會被隱藏掉,前面的BUG():、BUG6:、BUG:都是不正確的BUG(who)命名
登錄后復制

go doc <pkg>.<func>查看pkg包下面的func函數的注釋

example:     go doc test.Test      terminal show:      package test // import "test/testdoc"      func Test(param1 string, inter int) (k string)         功能: 測試函數             參  數:             param1  : 說明參數值             inter   : 運算的數字         返回值:             k       : 返回值
登錄后復制

如果想查看完整的源碼go doc -src <pkg>.<func>

example:      go doc -src test.Test       terminal show:     package test // import "test/testdoc"     // 功能: 測試函數     //  參  數:     //      param1  : 說明參數值     //      inter   : 運算的數字     //  返回值:     //      k       : 返回值     func Test(param1 string, inter int) (k string) {             fmt.Println("測試函數")             return param1     }
登錄后復制

在瀏覽器上查看

使用命令godoc -http=:6060

然后在打開瀏覽器的,在url輸入localhost:6060/pkg或者127.0.0.1:6060/pkg就可以查看到你本地的所有包的信息了

如果你想要找到你特定的包名的話localhost:6060/pkg/<path>/<packageName>或者127.0.0.1:6060/pkg/<path>/<packageName>

  • <path>是你/src下包所在的路徑

  • <packageName>是包名

導出godoc文檔為HTML

使用命令godoc -url "http://localhost:6060/pkg/<pkg>/<packageName>/" > <packageName>.html

  • <pkg>是你包所在的文件夾

  • <packageName>是你的包名

導出來的是純html文件,沒有樣式表,不過也有可能可以導出,但是我目前沒有找到,如果有找到的朋友也可以交流一下

不過我也有把對應的樣式文件給導出來了

下載地址https://github.com/BaiYu96/golandLearn/tree/master/learn_doc/stylefile

然后把html文件里面的css跟js指定的路徑修改好就可以

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲欧美日韩中文高清www777 | 无码精品前田一区二区| 久久精品中文字幕第一页| 国产精品自拍亚洲| 久久青青成人亚洲精品| 精品久久久久久综合日本| 成人精品视频一区二区三区尤物| 久久亚洲国产精品一区二区| 99精品视频在线观看免费专区| 日韩丰满少妇无码内射| 99热这里有免费国产精品| 午夜一级日韩精品制服诱惑我们这边| 亚洲区精品久久一区二区三区| 伊人精品久久久大香线蕉99 | 四虎国产精品永久在线| 国产精品国三级国产aⅴ| 精品无码一区二区三区爱欲九九| 国产999精品久久久久久| 青青草国产精品视频| 久久99热66这里只有精品一| 91精品国产一区二区三区左线| 精品一区二区三区中文| 亚洲精品黄色视频在线观看免费资源| 免费精品国偷自产在线在线| 亚洲精品乱码久久久久66| 亚洲AV日韩AV永久无码久久 | 亚洲精品中文字幕无码AV| 三上悠亚精品二区在线观看| 国产精品嫩草影院在线| 亚洲欧美精品午睡沙发| 2019天堂精品视频在线观看| 亚洲国产精品无码久久久秋霞2| selao久久国产精品| 精品人妻人人做人人爽夜夜爽 | 亚洲色偷精品一区二区三区| 亚洲av无码精品网站| 国产精品久久久久久福利| 精品国产aⅴ无码一区二区| 久久久久久极精品久久久| 日韩欧国产精品一区综合无码| laowang在线精品视频|