欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2022年07月25日 11:54:14   作者:夜?jié)M星河  
這篇文章主要介紹了Golang中的包及包管理工具go?mod,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、包

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.如果一個包引用了另一個包,另一個包又引用了另一個包,被最后導(dǎo)入的包會最先初始化并執(zhí)行init函數(shù)。

四、使用第三方包

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

2.安裝方法:

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

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

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

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

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

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

進(jìn)入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(在當(dāng)前目錄初始化mod)
tidyadd missing and remove unused modules(拉取缺少的模塊,移除不用的模塊)
vendormake vendored copy of dependencies(將依賴復(fù)制到vendor下)
verifyverify dependencies have expected content (驗證依賴是否正確)
whyexplain why packages or modules are needed(解釋為什么需要依賴)

到此這篇關(guān)于Golang中的包及包管理工具go mod的文章就介紹到這了,更多相關(guān)go包管理工具內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang http包構(gòu)建RESTful API的實現(xiàn)

    Golang http包構(gòu)建RESTful API的實現(xiàn)

    在Go語言中實現(xiàn)RESTful API可以利用標(biāo)準(zhǔn)庫net/http提供的功能,它允許你輕松地創(chuàng)建和處理HTTP請求,本文主要介紹了Golang http包構(gòu)建RESTful API的實現(xiàn),感興趣的可以了解一下
    2024-01-01
  • GoLang sync.Pool簡介與用法

    GoLang sync.Pool簡介與用法

    這篇文章主要介紹了GoLang sync.Pool簡介與用法,Pool是可伸縮、并發(fā)安全的臨時對象池,用來存放已經(jīng)分配但暫時不用的臨時對象,通過對象重用機(jī)制,緩解GC壓力,提高程序性能
    2023-01-01
  • 深入分析golang多值返回以及閉包的實現(xiàn)

    深入分析golang多值返回以及閉包的實現(xiàn)

    相對于C/C++,golang有很多新穎的特性,例如goroutine,channel等等,這些特性其實從golang源碼是可以理解其實現(xiàn)的原理。今天這篇文章主要來分析下golang多值返回以及閉包的實現(xiàn),因為這兩個實現(xiàn)golang源碼中并不存在,我們必須從匯編的角度來窺探二者的實現(xiàn)。
    2016-09-09
  • Golang網(wǎng)絡(luò)模型netpoll源碼解析(具體流程)

    Golang網(wǎng)絡(luò)模型netpoll源碼解析(具體流程)

    本文介紹了Golang的網(wǎng)絡(luò)模型netpoll的實現(xiàn)原理,本文將從為什么需要使用netpoll模型,以及netpoll的具體流程實現(xiàn)兩個主要角度來展開學(xué)習(xí),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 深入理解Go語言中defer和panic的執(zhí)行順序

    深入理解Go語言中defer和panic的執(zhí)行順序

    defer?和?panic?的執(zhí)行順序是一個重要的概念,本文主要介紹了Go語言中defer和panic的執(zhí)行順序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • Go錯誤處理的幾種方式

    Go錯誤處理的幾種方式

    在Go語言中,錯誤處理是一種重要的編程模式,它用于處理可能出現(xiàn)的錯誤或異常情況,本文就來介紹一下Go錯誤處理的幾種方式,感興趣的可以了解一下
    2023-11-11
  • goland?-sync/atomic原子操作小結(jié)

    goland?-sync/atomic原子操作小結(jié)

    這篇文章主要介紹了goland?-sync/atomic原子操作,原子操作能夠保證執(zhí)行期間是連續(xù)且不會被中斷(變量不會被其他修改,mutex可能存在被其他修改的情況),本文給大家介紹的非常詳細(xì),需要的朋友參考下
    2022-08-08
  • Go語言Http調(diào)用之Post請求詳解

    Go語言Http調(diào)用之Post請求詳解

    前文我們介紹了如何進(jìn)行 HTTP 調(diào)用,并通過 GET 請求的例子,講述了 query 參數(shù)和 header 參數(shù)如何設(shè)置,以及響應(yīng)體的獲取方法。 本文繼上文,接下來會通過 POST 請求,對其他參數(shù)的設(shè)置進(jìn)行介紹,感興趣的可以了解一下
    2022-12-12
  • Go語言中普通函數(shù)與方法的區(qū)別分析

    Go語言中普通函數(shù)與方法的區(qū)別分析

    這篇文章主要介紹了Go語言中普通函數(shù)與方法的區(qū)別,以實例形式對比分析了普通函數(shù)與方法使用時的區(qū)別與相關(guān)技巧,需要的朋友可以參考下
    2015-02-02
  • Go 1.23中Timer無buffer的實現(xiàn)方式詳解

    Go 1.23中Timer無buffer的實現(xiàn)方式詳解

    在 Go 1.23 中,Timer 的實現(xiàn)通常是通過 time 包提供的 time.Timer 類型來實現(xiàn)的,本文主要介紹了Go 1.23中Timer無buffer的實現(xiàn)方式,需要的可以了解下
    2025-03-03

最新評論