Golang基本命令詳解
原文源碼等更多內(nèi)容可參見:http://blog.hyrscloud.com/topic/index?id=19
go --help
C:\Users\zhang>go --help
Go is a tool for managing Go source code.
Usage:
go <command> [arguments]
其中 command 是操作命令 arg是該命令的參數(shù)八匠,像:go run hello.go
The commands are:
bug start a bug report
build compile packages and dependencies
clean remove object files and cached files
doc show documentation for package or symbol
env print Go environment information
fix update packages to use new APIs
fmt gofmt (reformat) package sources
generate generate Go files by processing source
get add dependencies to current module and install them
install compile and install packages and dependencies
list list packages or modules
mod module maintenance
run compile and run Go program
test test packages
tool run specified go tool
version print Go version
vet report likely mistakes in packages
Use "go help <command>" for more information about a command.
Additional help topics:
buildconstraint build constraints
buildmode build modes
c calling between Go and C
cache build and test caching
environment environment variables
filetype file types
go.mod the go.mod file
gopath GOPATH environment variable
gopath-get legacy GOPATH go get
goproxy module proxy protocol
importpath import path syntax
modules modules, module versions, and more
module-get module-aware go get
module-auth module authentication using go.sum
module-private module configuration for non-public modules
packages package lists and patterns
testflag testing flags
testfunc testing functions
Use "go help <topic>" for more information about that topic.
?
C:\Users\zhang></pre>
go build
go build compile packages and dependencies
:編譯包和依賴項茁裙,可檢查是否存在編譯錯誤朴艰,如果被編譯的是main包,會生成可執(zhí)行文件;
:go build hello.go 只編譯單個文件成可執(zhí)行文件;
:只有文件中有main函數(shù)才可以生成可執(zhí)行文件,否則go build只檢查編譯錯誤城侧,不生成可執(zhí)行文件;
:可通過 go build 編譯帶main函數(shù)的整個包形成可執(zhí)行文件
:例如:工程存放在 C:\Go\src\golang_mainInit_Src\ 目錄下
:在 C:\Go 下打開命令行彼妻,敲入go build .\src\golang_mainInit_Src\嫌佑,則可執(zhí)行文件生成在C:\Go 目錄下豆茫;
:在 C:\Go\src\golang_mainInit_Src\目錄下打開命令行,敲入go build屋摇,則可執(zhí)行文件生成在C:\Go\src\golang_mainInit_Src\目錄下揩魂;
:注意:使用go build編譯整個包,工程要在GOPATH環(huán)境變量里炮温,否則系統(tǒng)找不到火脉;
:go build hello.go則不需要,因為是編譯單個文件柒啤,具體詳情在Golang工作目錄及包管理文章中會詳細介紹倦挂;
:整個工程包的編譯,建議使用IDE担巩;如果是跨平臺編譯方援,則可拷貝工程進入其他平臺,設置環(huán)境變量后涛癌,使用go build犯戏,后續(xù)文章中也會有。
go get
go get add dependencies to current module and install them
:用于動態(tài)獲取遠程代碼包祖很,并將依賴項添加到當前模塊并安裝它們笛丙;
:go get github.com/mattn/go-sqlite3 默認拉到當前的 GOPATH目錄下漾脂,可通過go env假颇;
:github.com/mattn/go-sqlite3 是遠程代碼包地址,可在瀏覽器輸入瀏覽骨稿;
:一般都通過包管理工具直接拉取遠程包到當前工程目錄下笨鸡,例如:govendor,后續(xù)包管理文章會提到坦冠;
go run
run compile and run Go program
:編譯和直接運行Go程序形耗,它會生成一個臨時文件,但不是一個標準的可執(zhí)行文件辙浑,直接在命令行打印輸出程序執(zhí)行結(jié)果激涤,方便用戶調(diào)試;
:只能有 main 入口函數(shù)的才可以直接通過 go run運行判呕。
go fmt
go fmt 格式化源碼倦踢,有的IDE保存源碼時自動執(zhí)行該命令,比如subl侠草,也可手動執(zhí)行它
go install
go install 命令的作用有兩步:第一步辱挥,編譯導入的包文件,所有導入的包文件編譯完才會編譯主程序边涕;第二步晤碘,將編譯后生成的可執(zhí)行文件放到bin目錄下(GOPATH/bin)褂微,編譯后的包文件放到pkg目錄下( GOPATH/pkg)
go test
go test命令用于運行測試文件,該命令會自動讀取源碼目錄下的名為:*_test.go的文件园爷,生成并運行測試用的可執(zhí)行文件宠蚂,測試成功會顯示“PASS”、“OK”等信息童社。