溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Golang中的包及包管理工具go?mod怎么使用

發(fā)布時間:2022-07-28 10:38:16 來源:億速云 閱讀:102 作者:iii 欄目:開發(fā)技術

本文小編為大家詳細介紹“Golang中的包及包管理工具go mod怎么使用”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Golang中的包及包管理工具go mod怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

一、包

1.包的種類:系統(tǒng)內(nèi)置包、自定義包、第三方包。

(1)系統(tǒng)內(nèi)置包:go語言自帶包,如str.conv、fmt等

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

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

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

二、包管理工具go mod

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

不需要GOPATH了。

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

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

三、init函數(shù)

1.如果在go文件里定義了init函數(shù),則init函數(shù)會在程序運行時自動被調(diào)用執(zhí)行,且為最先執(zhí)行。

2.如果一個包引用了另一個包,另一個包又引用了另一個包,被最后導入的包會最先初始化并執(zhí)行init函數(shù)。

四、使用第三方包

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

2.安裝方法:

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

(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目錄

執(zhí)行命令

go mod init 項目名

會生成go.mod文件

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

go mod tidy

go mod 命令介紹

命令說明
downloaddownload modules to local cache(下載依賴包)
editedit go.mod from tools or scripts(編輯go.mod)
graphprint module requirement graph (打印模塊依賴圖)
verifyinitialize new module in current directory(在當前目錄初始化mod)
tidyadd missing and remove unused modules(拉取缺少的模塊,移除不用的模塊)
vendormake vendored copy of dependencies(將依賴復制到vendor下)
verifyverify dependencies have expected content (驗證依賴是否正確)
whyexplain why packages or modules are needed(解釋為什么需要依賴)

讀到這里,這篇“Golang中的包及包管理工具go mod怎么使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內(nèi)容的文章,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI