<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          一篇文章教會(huì)你如何使用Go語(yǔ)言Modules

          共 2378字,需瀏覽 5分鐘

           ·

          2021-05-31 09:45

          點(diǎn)擊上方“Go語(yǔ)言進(jìn)階學(xué)習(xí)”,進(jìn)行關(guān)注

          回復(fù)“Go語(yǔ)言”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書

          捫參歷井仰脅息,以手撫膺坐長(zhǎng)嘆。

          前言

          go moudules是Go的一個(gè)包管理工具,官方提供的,還是比較靠譜的,最低Go版本要求1.11+。

          可以理解為Python的虛擬環(huán)境,或者Java的maven,PHP的composer。

          其本質(zhì)解決的問(wèn)題就是包管理混亂問(wèn)題。

          反正就是,用就完事了,只有好事,沒(méi)有壞事。


          配置(不用管)

          GO111MODULE=off # 不適用modules功能GO111MODULE=off #使用molules功能,不會(huì)去GOPATH下找依賴包, 1.11+版本默認(rèn)開啟GO111MODULE=auto:Golang # Golang自己簡(jiǎn)則是不是使用modules功能

          根據(jù)上述命令,可以得到結(jié)論,在1.11+版本中,默認(rèn)就是可以使用go modules的,不需要做其他設(shè)置。


          它和傳統(tǒng)的直接go get區(qū)別在哪

          沒(méi)有使用go modules時(shí),我們直接go get下載的包,會(huì)默認(rèn)放在%GOPATH%/src目錄下。

          啟用go modules后,包都會(huì)下載到%GOPATH%/pkg/mod文件夾中。

          并且會(huì)帶版本號(hào),基本徹底解決依賴問(wèn)題。


          開始使用

          創(chuàng)建go.mod文件

          go.mod文件相當(dāng)于requirement.txt文件,里面會(huì)放一些所需要的依賴包。


          開始使用

          我創(chuàng)建了一個(gè)gomod-demo文件夾。

          并且CMD進(jìn)入此文件夾里面。

          執(zhí)行命令go mod init gomod-demo

          后面這個(gè)gomod-demo可以隨便寫,建議和文件夾名字一樣。

          成功后,文件夾下會(huì)多了一個(gè)go.mod文件,代表成功。

          我用Goland打開這個(gè)gomod-demo文件夾。

          go.mod文件說(shuō)明

          1. module:模塊名稱。

          2. require:依賴包列表以及版本。

          3. exclude:禁止依賴包列表(僅在當(dāng)前模塊為主模塊時(shí)生效)。

          4. replace:替換依賴包列表(僅在當(dāng)前模塊為主模塊時(shí)生效)。

          當(dāng)然,這些基本我們不需要?jiǎng)樱际峭ㄟ^(guò)命令或者IDE修改的


          簡(jiǎn)單使用

          比如我需要使用一個(gè)xstrings 包。

          github地址:https://github.com/huandu/xstrings

          需要執(zhí)行此命令安裝此包。

          執(zhí)行下載命令。

          go.mod文件會(huì)自動(dòng)添加一個(gè)依賴包。

          代碼:

          package main
          import ( "fmt" "github.com/huandu/xstrings")
          func main() { s := "heheh ADSL附近" center := xstrings.Count(s, "h") fmt.Println(center)}

          go連接Mysql

          github文檔如下。

          執(zhí)行下載命令 go get -u github.com/go-sql-driver/mysql

          go.mod文件如下。

          代碼:

          package main
          import ( "database/sql" _ "github.com/go-sql-driver/mysql" "time")
          func main() { //s := "heheh ADSL附近" //center := xstrings.Count(s, "h") //fmt.Println(center) db, err := sql.Open("mysql""user:password@/dbname") if err != nil { panic(err)} // See "Important settings" section. db.SetConnMaxLifetime(time.Minute * 3) db.SetMaxOpenConns(10) db.SetMaxIdleConns(10)}

          可能出現(xiàn)的異常

          如果使用go get 第三方包時(shí),goland無(wú)法導(dǎo)入,或者報(bào)錯(cuò),或者沒(méi)有Go Modules

          項(xiàng)目目錄下,使用go mod download下載一下,基本可以解決問(wèn)題,只要有Go Modules,就代表沒(méi)問(wèn)題。

          如果還是沒(méi)有Go Modules,在Goland中settings->Go->GoModules(vgo)

          go mod所有命令

          在當(dāng)前文件夾下初始化一個(gè)新的 module,創(chuàng)建 go.mod 文件:go mod init name拉取缺少的模塊,移除不用的模塊:go mod tidy將依賴復(fù)制到 vendor:go mod vendor下載依賴:go mod download檢驗(yàn)依賴:go mod verify顯示模塊依賴圖:go mod graph解釋為什么需要依賴:go mod why編輯 go.mod 文件:go eidt查看命令列表:go mod查看命令幫助文檔:go help mod

          總結(jié)

          上述我們學(xué)習(xí)了go mod的如何使用。如果在操作過(guò)程中有任務(wù)問(wèn)題,記得下面討論區(qū)留言,我們看到會(huì)第一時(shí)間解決問(wèn)題。

          我是碼農(nóng)星期八,如果覺得還不錯(cuò),記得動(dòng)手點(diǎn)贊以下哈,感謝你的觀看~

          ------------------- End -------------------

          歡迎大家點(diǎn)贊轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          想加入學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

          萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行

          瀏覽 75
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  豆花在线 | 国产内射在线视频 | 久久aa| 熟女人妻一区二区三区免费看 | 亚洲精品中文字幕日本精品 |