首頁 後端開發 Golang golang怎麼取得註釋內容

golang怎麼取得註釋內容

Jan 13, 2023 am 11:24 AM
golang go語言 註解

在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 下的src\golang.org\x\tools 目錄中,沒有的話可以手動建立;

  • 開啟GOPATH 下的src\golang .org\x\tools\cmd\godoc 目錄,在該目錄下開啟命令列工具,並執行​​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/pkg127.0.0.1:6060/pkg就可以查看到你本地的所有套件的資訊了

如果你想要找到你特定的套件名稱的話localhost:6060/pkg/<path>/<packagename></packagename></path>127.0.0.1: 6060/pkg/<path>/<packagename></packagename></path>

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

  • <packagename></packagename>是套件名稱

#匯出godoc文件為HTML

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

  • ##
  • 是你套件所在的資料夾
  • #<packagename></packagename>
  • 是你的套件名稱

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

不過我也有對應的樣式檔給導出了

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

然後把html檔案裡面的css跟js指定的路徑修改好就可以

【相關推薦:Go影片教學程式教學

以上是golang怎麼取得註釋內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Go語言中用於浮點數運算的庫有哪些? Go語言中用於浮點數運算的庫有哪些? Apr 02, 2025 pm 02:06 PM

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

Go的爬蟲Colly中Queue線程的問題是什麼? Go的爬蟲Colly中Queue線程的問題是什麼? Apr 02, 2025 pm 02:09 PM

Go爬蟲Colly中的Queue線程問題探討在使用Go語言的Colly爬蟲庫時,開發者常常會遇到關於線程和請求隊列的問題。 �...

在 Go 語言中,為什麼使用 Println 和 string() 函數打印字符串會出現不同的效果? 在 Go 語言中,為什麼使用 Println 和 string() 函數打印字符串會出現不同的效果? Apr 02, 2025 pm 02:03 PM

Go語言中字符串打印的區別:使用Println與string()函數的效果差異在Go...

在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? 在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? Apr 02, 2025 pm 04:54 PM

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

GoLand中自定義結構體標籤不顯示怎麼辦? GoLand中自定義結構體標籤不顯示怎麼辦? Apr 02, 2025 pm 05:09 PM

GoLand中自定義結構體標籤不顯示怎麼辦?在使用GoLand進行Go語言開發時,很多開發者會遇到自定義結構體標籤在�...

Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Apr 02, 2025 pm 04:12 PM

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...

Golang的目的:建立高效且可擴展的系統 Golang的目的:建立高效且可擴展的系統 Apr 09, 2025 pm 05:17 PM

Go語言在構建高效且可擴展的系統中表現出色,其優勢包括:1.高性能:編譯成機器碼,運行速度快;2.並發編程:通過goroutines和channels簡化多任務處理;3.簡潔性:語法簡潔,降低學習和維護成本;4.跨平台:支持跨平台編譯,方便部署。

多進程日誌寫入如何保證並發安全又高效? 多進程日誌寫入如何保證並發安全又高效? Apr 02, 2025 pm 03:51 PM

高效處理多進程日誌寫入的並發安全問題多進程同時寫入同一個日誌文件,如何保證並發安全且高效?這是一個...

See all articles