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

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號
国产精品自线在线播放| 2020天堂在线亚洲精品专区| 国产网红主播无码精品| 日韩精品亚洲专区在线影视| 国产真实乱人偷精品| 伊人久久精品一区二区三区| 在线人成精品免费视频| 久久精品人人爽人人爽| 国产小视频国产精品| 最新国产在线精品观看| 国产精品国产三级国产| 完整观看高清秒播国内外精品资源| 亚洲无删减国产精品一区| 国产精品无码久久综合| 国产亚洲精品无码拍拍拍色欲| 精品国产电影久久九九| 亚洲精品人成网线在线播放va | 精品国产福利第一区二区三区| 伊人影视在线观看日韩区| WWW夜片内射视频日韩精品成人| 久久99久久99精品免视看动漫| 久久九九久精品国产免费直播| 亚洲无码日韩精品第一页| 国产精品JIZZ在线观看无码| 国产精品青草久久| 国内揄拍国内精品视频| www国产精品内射老熟女| 囯产精品久久久久久久久久妞妞| 久久香蕉超碰97国产精品| 久久久久久国产精品三级 | 精品国产一二三产品价格| 99精品国产在热久久婷婷| 狼色精品人妻在线视频| 99re热久久精品这里都是精品| 国产亚洲美女精品久久久久狼| 一本一道久久a久久精品综合| 国产精品入口麻豆电影网| 国产精品无码素人福利免费| 午夜精品福利影院| 国产精品亚洲专区在线播放| 国产亚洲精品美女久久久久|