這些常用的 Go CLI 命令,新手 Gopher 應(yīng)該掌握
本文將介紹一些最基本的 Go 命令行命令。如果你剛接觸 Go 語言,那你有必要記住它們,因?yàn)檫@些命令是 Go 開發(fā)者日常工作中所必備的。
Go version
開始 Go 項(xiàng)目前,我們應(yīng)該確保開發(fā)機(jī)上已經(jīng)安裝好了 Go 編譯器。
通過執(zhí)行以下命令可以查看安裝的 Go 版本信息。
Go env
如果我們可能想查看一些 Go 相關(guān)的環(huán)境變量,例如 GOROOT 或者 GOPATH。你可以執(zhí)行這個命令。
當(dāng)你想對某個環(huán)境變量進(jìn)行更改,例如修改 Go 代理,你可以這樣做。
go mod
在你開始建立第一個 Go 程序時(shí),在項(xiàng)目根目錄下,你應(yīng)該運(yùn)行這樣的命令。
例如
此時(shí),項(xiàng)目根目錄將增加 go.mod 文件,它的內(nèi)容如下
如果你有其他語言的經(jīng)驗(yàn),那么 go.mod 類似于 Python 中的 requirements.txt,Java 中的 pom.xml,它用于管理項(xiàng)目的依賴包。
go get
當(dāng)項(xiàng)目中有引入外部庫,應(yīng)該執(zhí)行 go get 命令。
例如我們需要使用日志庫 logrus,執(zhí)行以下命令會將該庫源代碼下載至 mod cache 中,并將在 go.mod 文件中記錄該庫的依賴情況。
go run/build
當(dāng)我們已經(jīng)編寫了一些 Go 代碼,并希望在本地運(yùn)行它以查看程序表現(xiàn)是否符合預(yù)期。
當(dāng)然,我們也可以使用 go build 命令。
兩種命令方式都需要編譯的過程,實(shí)質(zhì)并無什么區(qū)別。go run只是將編譯得到的可執(zhí)行文件執(zhí)行后銷毀,而 go build 是將可執(zhí)行文件保留下來,并不直接執(zhí)行。
go test
如果你編寫了一堆單元測試代碼(在以_test.go 結(jié)尾的文件中),你想運(yùn)行它們,只需要執(zhí)行以下語句。
go mod tidy
當(dāng)項(xiàng)目中嘗試引入過多個三方包,而其中部分包我們并不需要了,那就應(yīng)該從代碼依賴中刪除。
go vet
當(dāng)完成了功能開發(fā)后,應(yīng)該使用以下命令來幫助我們檢測程序中可能存在問題的代碼。更多 vet 知識可以查看文章Go工具之vet——靜態(tài)診斷器。
go fmt
當(dāng)完成了功能開發(fā),準(zhǔn)備提交代碼到公共倉庫。我們應(yīng)該確保項(xiàng)目代碼遵循統(tǒng)一的官方代碼風(fēng)格。
當(dāng)然更好的方式其實(shí)是使用檢查套件,具體可以參見文章Gopher一定要會的代碼自動化檢查。
總結(jié)
Go 提供了非常多簡單又實(shí)用的命令行工具,本文僅介紹了一些在項(xiàng)目開發(fā)中最可能被用到的命令。
想獲取更多 Go 命令?可以執(zhí)行 $ go 或者 $ go tool 獲取命令列表,執(zhí)行 go help <command>可了解特定命令的更多信息。