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

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號
四虎亚洲精品高清在线观看| 久久精品国产亚洲AV嫖农村妇女| 日韩AV无码久久一区二区| 人妻少妇精品久久久久久| 亚洲国产精品美女| 日韩精品无码AV成人观看| 精品国产品香蕉在线观看75| 精品人妻一区二区三区毛片| 日韩AV高清在线观看| 国产亚洲精品美女2020久久| 精品国产高清自在线一区二区三区| 1000部精品久久久久久久久| 久久久精品国产免大香伊| 99re5在线精品视频热线| 久久久精品波多野结衣AV | 久久这里精品国产99丫E6| 国产拍揄自揄精品视频| 日韩精品无码免费专区午夜| 久久久久九九精品影院| 精品国产一级在线观看| 久久精品国产99久久丝袜| 国产精品亚洲美女久久久| 四库影院永久四虎精品国产 | 凹凸69堂国产成人精品视频| 亚洲av无码日韩av无码网站冲| 日韩欧群交P片内射中文| 亚洲 日韩 色 图网站| 日韩色图在线观看| 美日韩一区二区三区| 精品特级一级毛片免费观看| 精品一区中文字幕| 亚洲国产精品13p| 国产精品自在拍一区二区不卡| 久久e热在这里只有国产中文精品99 | 久久久午夜精品福利内容| 国产精品嫩草影院人体模特| 国产精品大白天新婚身材| 国产精品美女在线观看| 国产精品视频永久免费播放| 日韩加勒比一本无码精品| 国外AV无码精品国产精品|