亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

一、包

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

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

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

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

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

二、包管理工具go mod

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

不需要GOPATH了。

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

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

三、init函數(shù)

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

2.如果一個(gè)包引用了另一個(gè)包,另一個(gè)包又引用了另一個(gè)包,被最后導(dǎo)入的包會(huì)最先初始化并執(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)前項(xiàng)目的vendor下,本項(xiàng)目)

補(bǔ)充:下面看下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 項(xiàng)目名

會(huì)生成go.mod文件

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

go mod tidy

go mod 命令介紹

命令說(shuō)明
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 (驗(yàn)證依賴是否正確)
whyexplain why packages or modules are needed(解釋為什么需要依賴)

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

相關(guān)文章

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

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

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

    GoLang sync.Pool簡(jiǎn)介與用法

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

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

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

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

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

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

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

    Go錯(cuò)誤處理的幾種方式

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

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

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

    Go語(yǔ)言Http調(diào)用之Post請(qǐng)求詳解

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

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

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

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

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

最新評(píng)論