Golang中的包及包管理工具go mod詳解

一、包

1.包的種類:系統內置包、自定義包、第三方包。

(1)系統內置包:go語言自帶包,如str.conv、fmt等

(2)自定義包:開發者自己寫的包

(3)第三方包:屬於自定義包的一種,需下載到本地才能使用, 如可以從GitHub上下載的第三方包。

2.包是多個go源文件的集合,一個package下可以有多個go文件,歸屬於同一package

二、包管理工具go mod

1.在go的1.11版本之前如果想自定義包需要把項目放在GOPATH目錄下。在go的1.11版本之後無需手動配置環境變量,使用go mod管理項目,也不需要把項目放在GOPATH下。在go的1.13版本之後就徹底

不需要GOPATH瞭。

2.實際開發中首先需要在項目目錄下通過go mod init命令來創建一個go.mod文件來管理項目,如在項目project下初始化項目:go mod init project。一個項目中必須要有main包和main方法。

3.一個包裡可以定義方法或變量,如果方法名或變量名大寫,則此方法或變量可以被其他包引用並使用,表示公有,小寫為私有。

三、init函數

1.如果在go文件裡定義瞭init函數,則init函數會在程序運行時自動被調用執行,且為最先執行。

2.如果一個包引用瞭另一個包,另一個包又引用瞭另一個包,被最後導入的包會最先初始化並執行init函數。

四、使用第三方包

1.首先在github上找到第三方包,下載到本地即可進行引用。

2.安裝方法:

(1)go get 包名稱(全局,受網絡影響)

(2)go mod download(全局,下載當前包的依賴)

(3)go mod vendor(將依賴復制到當前項目的vendor下,本項目)

補充:下面看下go mod包管理工具

修改go的.env文件中的配置

GO111MODULE=on
GOBIN=/Users/youdi/go/bin
GOPROXY=https://goproxy.cn,direct
GOSUMDB=off

進入goPath路徑下的src目錄

執行命令

go mod init 項目名

會生成go.mod文件

下載需要的包,移除多餘的包

go mod tidy

go mod 命令介紹

命令 說明
download download modules to local cache(下載依賴包)
edit edit go.mod from tools or scripts(編輯go.mod)
graph print module requirement graph (打印模塊依賴圖)
verify 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(解釋為什麼需要依賴)

到此這篇關於Golang中的包及包管理工具go mod的文章就介紹到這瞭,更多相關go包管理工具內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: