日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一篇文章教會你如何使用Go語言Modules

前言

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

響水ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

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

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

反正就是,用就完事了,只有好事,沒有壞事。

配置(不用管)

  
 
 
 
  1. GO111MODULE=off # 不適用modules功能 
  2. GO111MODULE=off #使用molules功能,不會去GOPATH下找依賴包, 1.11+版本默認開啟 
  3. GO111MODULE=auto:Golang # Golang自己簡則是不是使用modules功能 

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

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

沒有使用go modules時,我們直接go get下載的包,會默認放在%GOPATH%/src目錄下。

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

并且會帶版本號,基本徹底解決依賴問題。

開始使用

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

go.mod文件相當于requirement.txt文件,里面會放一些所需要的依賴包。

開始使用

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

并且CMD進入此文件夾里面。

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

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

成功后,文件夾下會多了一個go.mod文件,代表成功。

我用Goland打開這個gomod-demo文件夾。

go.mod文件說明

  1. module:模塊名稱。
  2. require:依賴包列表以及版本。
  3. exclude:禁止依賴包列表(僅在當前模塊為主模塊時生效)。
  4. replace:替換依賴包列表(僅在當前模塊為主模塊時生效)。

當然,這些基本我們不需要動,都是通過命令或者IDE修改的。

簡單使用

比如我需要使用一個xstrings 包。

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

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

執(zhí)行下載命令。

go.mod文件會自動添加一個依賴包。

代碼:

  
 
 
 
  1. package main 
  2.  
  3. import ( 
  4.     "fmt" 
  5.     "github.com/huandu/xstrings" 
  6.  
  7. func main() { 
  8.     s := "heheh ADSL附近" 
  9.     center := xstrings.Count(s, "h") 
  10.     fmt.Println(center) 

go連接Mysql

github文檔如下。

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

go.mod文件如下。

代碼:

  
 
 
 
  1. package main 
  2.  
  3. import ( 
  4.     "database/sql" 
  5.     _ "github.com/go-sql-driver/mysql" 
  6.     "time" 
  7.  
  8. func main() { 
  9.     //s := "heheh ADSL附近" 
  10.     //center := xstrings.Count(s, "h") 
  11.     //fmt.Println(center) 
  12.     db, err := sql.Open("mysql", "user:password@/dbname") 
  13.     if err != nil { 
  14.         panic(err) 
  15.     // See "Important settings" section. 
  16.     db.SetConnMaxLifetime(time.Minute * 3) 
  17.     db.SetMaxOpenConns(10) 
  18.     db.SetMaxIdleConns(10) 

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

如果使用go get 第三方包時,goland無法導入,或者報錯,或者沒有Go Modules。

在項目目錄下,使用go mod download下載一下,基本可以解決問題,只要有Go Modules,就代表沒問題。

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

go mod所有命令

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

總結(jié)

上述我們學習了go mod的如何使用。如果在操作過程中有任務問題,記得下面討論區(qū)留言,我們看到會第一時間解決問題。

本文轉(zhuǎn)載自微信公眾號「Go語言進階學習」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Go語言進階學習公眾號。


網(wǎng)站標題:一篇文章教會你如何使用Go語言Modules
地址分享:http://www.dlmjj.cn/article/dpighcs.html