要構建Go語言的編譯環境,首先得安裝Go語言的編譯工具git
官方路徑:https://golang.google.cn/dl/,通常是訪問不了,使用國內網站:https://studygolang.com/dl
而後須要設置環境變量
在windows下須要將go編譯器的安裝路徑加到Path,還要設置GOROOT和GOPATH變量,分別對應GO安裝目錄和項目下的src目錄。github
GO包管理通常有兩種方式:GOPATH方式和GO Module方式
GOPATH方式是GO原生支持的方式,通常要求項目下包含三個目錄:
bin:放置可執行文件
pkg:放置編譯生成的lib包
src:放置源碼,go編譯查找源文件目錄
例如項目結構以下:golang
通常源文件的包名就是所在的文件夾名,若是在main函數中要調用algorithms中的qsort中的函數,只須要import文件便可,路徑爲GOPATH/src下的路徑:windows
若是須要導入github上的開源代碼,直接import項目的url連接便可,而且須要go get導入到本地路徑,go會自動在src目錄下生成github.com目錄。函數
Go Module管理方式
Go Module方式是golang1.11新增的特性,直接基於模塊管理,而不是基於固定目錄
要使用Go Module,須要先設置go變量GO111MODULE=on
要注意Go Module方式跟GOPATH方式不兼容,項目路徑不能在GOPATH裏。工具
在項目中不須要src目錄,使用go mod init創建mod管理,會自動在項目下生成go.mod文件,若是須要依賴第三方代碼,除了在項目中import以外,還須要使用go mod download下載包網站
go.mod文件示例:ui
在項目中引用庫,本地庫必須帶上項目路徑:google
go mod經常使用命令:url
命令 |
說明 |
download |
download modules to local cache(下載依賴包) |
edit |
edit go.mod from tools or scripts(編輯go.mod |
graph |
print module requirement graph (打印模塊依賴圖) |
init |
initialize new module in current directory(在當前目錄初始化mod) |
tidy |
add missing and remove unused modules(拉取缺乏的模塊,移除不用的模塊) |
vendor |
make vendored copy of dependencies(將依賴複製到vendor下) |
verify |
verify dependencies have expected content (驗證依賴是否正確) |
why |
explain why packages or modules are needed(解釋爲何須要依賴) |