91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Go語言中怎么導入第三方庫

發布時間:2021-08-03 14:30:37 來源:億速云 閱讀:275 作者:Leah 欄目:開發技術

Go語言中怎么導入第三方庫,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

環境變量

首先回想一下,我們安裝goland的時候,設置了幾個比較重要的環境變量,也就是GOROOT和GOPATH。

GOROOT比較容易理解。也就是我們go語言的安裝目錄,標準庫什么的就放在里面的。在linux中的話,默認安裝到/usr/lib/go中,我們創建項目時選擇的SDK也就是這個。

Go語言中怎么導入第三方庫

GOPATH可以理解為工作目錄。GOPATH指定的目錄下一般有三個子目錄。如下:

GOPATH    //go工作目錄
  |
  |--bin     //編譯后生成的可執行文件
  |
  |--pkg     //編譯后生成的包/庫文件
  |
  |--src     //項目的源代碼文件

bin目錄容易理解,而pkg包就是放第三方庫的地方,像go get后的包就在里面。src目錄就是放項目源代碼的,一般都是把多個項目都放到src目錄下,然后對這些項目統一管理,也就是共用bin和pkg,如果在不同目錄放項目,然后把這些項目都放到GOPATH中,顯然會有沖突。故一般都不推薦這么做。

我們可以在終端中輸入go env查看環境變量,下面是我的配置目錄:

Go語言中怎么導入第三方庫

Go語言中怎么導入第三方庫

實踐導包

現在我們先創建一個新項目,實際嘗試一下。

Go語言中怎么導入第三方庫

然后新建一個main文件,輸入:

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() 
}

再打開終端,輸入go mod init, 直接跑一下,會發現直接在下載import的包了,這時候如果直接跑的話,是發現能直接跑的,但是發現報紅, 輸入也不會自動補全。

Go語言中怎么導入第三方庫

這時候只需打開setting,把go mod打勾,如下。然后直接跑一下,或者重新打開ide因該就不會報紅了。

Go語言中怎么導入第三方庫

當然我們也可以手動自己下載,只需使用go get命令。

go get -u github.com/gin-gonic/gin

但是發現根本沒有反應,輸入go env查看發現有個變量叫GO111MODULE,這玩意是干什么的呢, 是用來配置go mod用的,比如什么時候到go path,goroot去找,或者直接在go mod中找。一共有三個狀態。

  • GO111MODULE=auto, 這個是默認值,根據一些情況自動判斷是否打開go mod。

  • GO111MODULE=on,打開go mod

  • GO111MODULE=off關閉go mod

于是我們輸入go env -w GO111MODULE=on打開go mod,再次輸入go get -u github.com/gin-gonic/gin,但是會發現下載的速度簡直感人,這是因為服務器在國外的嘛,你懂得,我們可以設置代理。

go env -w GOPROXY=https://goproxy.cn,direct

再次go get,發現速度飛起,嘗試run一下,如果出現報紅問題,像上面那樣解決一下。

當然我們也可以項目放到GOPATH目錄以外。如下

Go語言中怎么導入第三方庫

同樣的,如果要導包的話,像上面那樣使用go mod就行了。

我們可以進入GOPATH目錄下的pkg目錄,會發現我們導入的包在這里面的。

Go語言中怎么導入第三方庫

我們也可以進入goland,

Go語言中怎么導入第三方庫

發現外部庫有兩個,一個是SDK,也就是go的安裝目錄(GOROOT),標準庫就在這里的。另一個是go mod,就是我們剛剛導入的,放到GOPATH/pkg下的包。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

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

AI

呼图壁县| 太湖县| 伊吾县| 信阳市| 双桥区| 南漳县| 清新县| 湖州市| 天祝| 界首市| 安西县| 苍溪县| 满洲里市| 临沧市| 玉田县| 登封市| 泽库县| 浑源县| 固镇县| 南充市| 德保县| 华宁县| 尖扎县| 北辰区| 昆山市| 宣化县| 崇信县| 陇西县| 阳西县| 商城县| 石家庄市| 普兰店市| 南平市| 错那县| 常山县| 宁河县| 广汉市| 新安县| 庄浪县| 新绛县| 县级市|