1.bug
:在瀏覽器中開啟github的golang專案,可以提交bug報告。
$ go bug
2.build
:編譯專案和檔案
# 交叉編譯
$ cgo_enabled=0 goos=darwin goarch=amd64 go build -o demo.darwin.amd64
$ cgo_enabled=0 goos=linux goarch=amd64 go build -o demo.linux.amd64
3.clean
:清理生成的可執行檔案和包(不支援自定義的編譯檔名)
-i 清除關聯的安裝的包和可執行檔案,也就是通過go install安裝的檔案
-n 把需要執行的清除命令列印出來,但是不執行,這樣就可以很容易的知道底層是如何執行的
-r 迴圈的清除在import中引入的包
-x 列印出來執行的詳細命令,其實就是-n列印的執行版本
$ go clean -x #檢視會執行什麼命令
4.doc
:檢視包結構
或原始碼注釋
。跟ide中轉到宣告
等效
$ go doc 包名.成員名 #成員可以是常量、變數、結構體、函式、方法...
$ go doc builtin
#檢視內建包builtin的包結構
$ go doc http.request #http包的request結構體
$ go doc repo.getorderbyid #檢視自定義成員資訊
5.env
:列印go語言的環境資訊
名稱說明
cgo_enabled
指明cgo工具是否可用的標識
goarch
程式構建環境的目標計算架構
gobin
存放可執行檔案的目錄的絕對路徑
gochar
程式構建環境的目標計算架構的單字元標識
goexe
可執行檔案的字尾
gohostarch
程式執行環境的目標計算架構
goos
程式構建環境的目標作業系統
gohostos
程式執行環境的目標作業系統
gopath
工作區目錄的絕對路徑
gorace
用於資料競爭檢測的相關選項
goroot
go語言的安裝目錄的絕對路徑
gotooldir
go工具目錄的絕對路徑
6.fix
:將指定**包的舊**修正為新**。檢視參考文章
7.fmt
:格式化原始碼檔案 檢視參考文章
$ go fmt main.go
8.generate
:掃瞄原始碼檔案,找出"//go:generate"的特殊注釋1
,提取並執行該注釋後面的命令。檢視參考文章
有幾點需要注意:
該特殊注釋必須在.go原始碼檔案中。
每個原始碼檔案可以包含多個generate特殊注釋時。
顯示執行go generate命令時,才會執行特殊注釋後面的命令。
命令序列執行的,如果出錯,就終止後面的執行。
特殊注釋必須以"//go:generate"開頭,雙斜線後面沒有空格。
應用在有些場景下,我們會使用go generate:
yacc:從 .y 檔案生成 .go 檔案。
protobufs:從 protocol buffer 定義檔案(.proto)生成 .pb.go 檔案。
unicode:從 unicodedata.txt 生成 unicode 表。
html:將 html 檔案嵌入到 go 原始碼 。
bindata:將形如 jpeg 這樣的檔案轉成 go **中的位元組陣列。
再比如:
string方法:為類似列舉常量這樣的型別生成string()方法。
巨集:為既定的泛型包生成特定的實現,比如用於ints的sort.ints。
9.get
:download and install packages and dependencies
-f 只有在你包含了-u引數的時候才有效,不讓-u去驗證import中的每乙個都已經獲取了,這對於本地fork的包特別有用
-fix 在獲取原始碼之後先執行fix,然後再去做其他的事情
-u 強制使用網路去更新包和它的依賴包
-v 顯示執行的命令
10.install
:編譯安裝
11.list
:檢視包路徑、名稱、匯入項、**檔案,測試檔案,依賴項等資訊。
12.mod
:模組管理。檢視參考文章
13.run
:執行go程式
-v:列出被編譯的**包的名稱
-a -v:列出所有被編譯的**包的名稱
-p n:並行編譯,其中n為並行的數量 如-p 2
-n:列印編譯過程中所需執行的命令,但並不執行這些命令
-x:列印編譯過程中所需執行的命令,並執行這些命令
-work:顯示編譯時建立的臨時工作目錄的路徑,並且不刪除這個臨時工作目錄
# -n 顯示執行過程;-p:
$ go run showds.go -p ~/golang/goc2p
14.test
:單元測試
-bench regexp 執行相應的benchmarks,例如 -bench=.
-cover 開啟測試覆蓋率
-run regexp 只執行regexp匹配的函式,例如 -run=array 那麼就執行包含有array開頭的函式
-v 顯示測試的詳細命令
$ go test demo_test.go demo.go # 單元測試
$ go test --cover demo_test.go demo.go # 單元測試覆蓋率
$ go test -bench=. demo_test.go demo.go # 效能測試
15.tool
:執行指定的go工具, 如:go tool pprof
16.version
:列印golang版本資訊
17.vet
:用於檢查靜態錯誤,即編譯不易發現等錯誤。檢視參考文章
$ go tool vet
func
main()
for_
, word :=
range words ()
}}
18.godoc
:用於展示指定**包的文件
$ godoc fmt
$ godoc fmt printf
$ godoc fmt printf println
$ godoc -src fmt printf
$ godoc cmd/go
$ godoc -http=:9999 #啟動$goroot\doc下的幫助站點
19.help
:幫助命令
$ go help modules
$ go help vet
參考:go的註解只是特殊的注釋約定,如
deprecated
表示**已不被推薦使用;todo
可以快速定位到代辦項; ↩︎ Go命令教程 1 標準命令詳解
go 語言的 1.5 版本在標準命令方面有了重大變更。這倒不是說它們的用法有多大的變化,而是說它們的底層支援已經大變樣了。讓我們先來對比一下 goroot pkg tool 平台相關目錄 中的內容。以下簡稱此目錄為 go 工具目錄。插播 平台相關目錄即以 命名的目錄,用於存放因特定平台的不同而不同的...
go標準命令詳解0 4 go clean
執行go clean命令會刪除掉執行其它命令時產生的一些檔案和目錄,包括 在使用go build命令時在當前 包下生成的與包名同名或者與go原始碼檔案同名的可執行檔案。在windows下,則是與包名同名或者go原始碼檔案同名且帶有 exe 字尾的檔案。在執行go test命令並加入 c標記時在當前 ...
go標準命令詳解0 7 go test
go test命令用於對go語言編寫的程式進行測試。這種測試是以 包為單位的。當然,這還需要測試原始碼檔案的幫助。關於怎樣編寫並寫好go程式測試 我們會在本章的第二節加以詳述。在這裡,我們只討論怎樣使用命令啟動測試。go test命令會自動測試每乙個指定的 包。當然,前提是指定的 包中存在測試原始碼...