Golang學習 常用命令工具鏈介紹

2021-09-14 04:35:06 字數 2972 閱讀 7848

golang語言提供非常強大的工具鏈,包括編譯、測試、重構**、文件、從github中pull第三方庫等

go build命令常用於將go檔案編譯成相應平台的可執行檔案

go build 主檔名,編譯成功後就會自動乙個可執行檔案

也可以使用自定義編譯的方式

goos=windows goarch=amd64 go build main.go

goos:表示系統名稱的縮寫(linux/mac/windows)

goarch:表示系統位數(amd64)

go install與go build最大的不同在於,go install編譯後會輸出檔案打包成庫放到pkg檔案下,下次使用的時候不再進行編譯,方便使用

-u:表示使用最新的包,重複的檔案不更新

-v:表示顯示操作流程的日誌及資訊

go fmt命令類似於c的lint,但是lint只會檢查問題,而go fmt**進行格式化一遍,統一**風格,方便維護

格式化前的**

}格式化後的**

func main() 

}

使用go fmt命令後,會顯示格式化了那些檔案

go test命令用於測試和驗證**的完整性

go test檔案一般以***x_test命名

使用go test 命令時,將***x_test.go結尾和test開頭的函式都自動執行,否則go test會直接跳過該測試用例不執行

test***測試用例需要傳入*testing.t或b *testing.b(測試效能)作為引數

建立***x_test.go檔案

request.go檔案**

package main

func printnum() int

return result

}func main()

request_test.go檔案**如下

package main

import (

"fmt"

"testing"

)func testprice(t *testing.t)

}

使用go test 命令結果如下

也可以使用 go test -v命令或者go test -v -run,-v表示test的一些詳細資訊,-run表示單獨執行測試函式名,測試函式名可以是正規表示式

如果想要測試用例按照順序執行,可以使用subtest

package main

import (

"fmt"

"testing"

)func testprintnum1(t *testing.t)

}func testprintnum2(t *testing.t)

}func testall(t *testing.t)

如果想要在執行測試用例前做一些初始化操作,可以使用testmain,傳入m *testing.m作為引數

package main

import (

"fmt"

"testing"

)func testprintnum1(t *testing.t)

}func testprintnum2(t *testing.t)

}func testall(t *testing.t)

func testmain(m *testing.m)

如果使用了初始化tset,沒有呼叫m.run()方法時,除了初始化測試用例之外的測試用例都不會執行

注釋m.run()方法可以發現,只執行了初始化測試用例

基準測試

獲得**記憶體占用和執行效率的效能資料,傳入(b *testing.b)引數

使用for迴圈,b.n作為結束條件,b.n是乙個可變的值,根據每一次操作耗費多少時間(納秒)來改變,即到了乙個穩定的納秒結束,輸出次數

package main

import (

"fmt"

"testing"

)func benchprintnum(b *testing.b)

}

使用 go get -v -bench="."

linux版本需要去除雙引號,即go get -v -bench=.

編譯並執行go檔案

需要注意的是該檔案package 為main包,並且存在main()主函式,否則出現 cannot run non-main package錯誤資訊,無法編譯執行

檢視當前go的環境變數等資訊

檢視當前golang的版本

最後golang 常用命令就介紹到這了

go mod常用命令 golang 學習筆記2

go mod 是golang 1.11 版本引入的官方包 package 依賴管理工具。golang 提供乙個環境變數 go111module 來設定是否使用mod,它有3個可選值,分別是off,on,auto 預設值 具體含義如下 off gopath mode,查詢vendor和gopath目錄...

工作常用命令工具

ipcs,ipcrm,iostat,iotop hdparm,dd vmstat,top,dstat,mpstat ethtool,ifconfig,ifup,ifdown ip addr,ip link route ip route arp ip neighbor ip ping,arping,t...

pip工具常用命令

pip命令示例 說明pip download somepackage version pip freeze requirements.txt 以requirements格式累出已安裝模組 pip list 列出當前已安裝的所有模組 pip install somepackage version pi...