查看可用命令
直接在終端中輸入 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 main
import "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.go
Hello 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 main
import "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 即可查看相關命令。