標籤:pat ash 伺服器 產生 packages run 檔案夾 編譯 version
前面的文章中記錄了安裝 golang 和配置開發環境,本文將學習的 go 命令列命令以及使用情境。
查看可用命令
直接在終端中輸入 go help
即可顯示所有的 go 命令以及相應命令功能簡介,主要有下面這些:
- build: 編譯包和依賴
- clean: 移除對象檔案
- doc: 顯示包或者符號的文檔
- env: 列印go的環境資訊
- bug: 啟動錯誤報表
- fix: 運行go tool fix
- fmt: 運行gofmt進行格式化
- generate: 從processing source產生go檔案
- get: 下載並安裝包和依賴
- install: 編譯並安裝包和依賴
- list: 列出包
- run: 編譯並運行go程式
- test: 運行測試
- tool: 運行go提供的工具
- version: 顯示go的版本
- vet: 運行go tool vet
命令的使用方式為: go command [args]
, 除此之外,可以使用go help <command>
來顯示指定命令的更多協助資訊。
在運行 go help 時,不僅僅列印了這些命令的基本資料,還給出了一些概念的協助資訊:
- c: Go和c的相互調用
- buildmode: 構建模式的描述
- filetype: 檔案類型
- gopath: GOPATH環境變數
- environment: 環境變數
- importpath: 匯入路徑文法
- packages: 包列表的描述
- testflag: 測試符號描述
- testfunc: 測試函數描述
同樣使用 go help <topic>
來查看這些概念的的資訊。
build 和 run 命令
就像其他靜態類型語言一樣,要執行 go 程式,需要先編譯,然後在執行產生的可執行檔。go build
命令就是用來編譯 go程式產生可執行檔的。但並不是所以的 go 程式都可以編譯產生可執行檔的, 要產生可執行檔,go程式需要滿足兩個條件:
- 該go程式需要屬於main包
- 在main包中必須還得包含main函數
也就是說go程式的入口就是 main.main
, 即main包下的main函數, 例子(hello.go):
package mainimport "fmt"func main() { fmt.Println("Hello World!")}
編譯hello.go,然後運行可執行程式:
$ go run hello.go # 將會產生可執行檔 hello$ ./hello # 運行可執行檔Hello World!
上面就是 go build 的基本用法,另外如果使用 go build 編譯的不是一個可執行程式,而是一個包,那麼將不會產生可執行檔。
而 go run
命令可以將上面兩步並為一步執行(不會產生中間檔案)。
$ go run hello.goHello World!
上面兩個命令都是在開發中非常常用的。
此外 go clean 命令,可以用於將清除產生的可執行程式:
$ go clean # 不加參數,可以刪除目前的目錄下的所有可執行檔$ go clean sourcefile.go # 會刪除對應的可執行檔
fmt 和 doc 命令
go 語言有一個褒貶不一的特性,就是對格式的要求很嚴格,我是很喜歡這個特性的,因為可以保持代碼的清晰一致,編譯組合開發,並且go還提供了一個非常強大的工具來格式化代碼,它就是 go fmt sourcefile.go
, 不過通常其實不需要我們手動調用,各種編輯器都可以協助我們自動完成格式化。
go doc
命令可以方便我們快速查看包文檔,go doc package
命令將會在終端中列印出指定 package 的文檔。
另外有一個與 go doc
命令相關的命令是 godoc
, 可以通過它啟動我們自己的文檔伺服器:
godoc -http=:8080
然後我們就可與在瀏覽器localhost:8080
中查看go文檔了
get 命令
這個命令同樣也是很常用的,我們可以使用它來下載並安裝第三方包, 使用方式:
go get src
從指定源上面下載或者更新指定的代碼和依賴,並對他們進行編譯和安裝,例如我們想使用 beego 來開發web應用,我們首先就需要擷取 beego:
go get github.com/astaxie/beego
這條命令將會自動下載安裝 beego 以及它的依賴,然後我們就可以使用下面的方式使用:
package mainimport "github.com/astaxie/beego" # 這裡需要使用 src 下的完整路徑func main() { beego.Run()}
install 命令
用來編譯和安裝go程式,我們可以將它與 build 命令對比:
|
install |
build |
產生的可執行檔路徑 |
工作目錄下的bin目錄下 |
目前的目錄下 |
可執行檔的名字 |
與源碼所在目錄同名 |
預設與來源程式同名,可以使用-o選項指定 |
依賴 |
將依賴的包放到工作目錄下的pkg檔案夾下 |
- |
test 命令
顧名思義,用來運行測試的命令,這種測試是以包為單位的。需要遵循一定規則:
- 測試源檔案是名稱以“_test.go”為尾碼的
- 測試源檔案內含若干測試函數的源碼檔案
- 測試函數一般是以“Test”為名稱首碼, 並有一個類型為“testing.T”的參數。
其他命令
其他命令不會經常使用,這裡就不介紹了,真的用到的時候,直接使用 go help command
即可查看相關命令。
go語言學習-常用命令