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

手把手教你導(dǎo)入Go語言第三方庫

 更新時間:2021年08月03日 10:54:48   作者:MikuDance  
本文主要介紹了手把手教你導(dǎo)入Go語言第三方庫,通過導(dǎo)入gin包來深入學(xué)習(xí),具有一定的參考價值,感興趣的小伙伴們可以參考一下

最好的學(xué)習(xí)方式就是實(shí)踐。 我們通過導(dǎo)入gin包來深入學(xué)習(xí)。

環(huán)境

  • go 1.13.5
  • goland 2019.3.1
  • manjaro-gnome3.34.2

環(huán)境變量

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

GOROOT比較容易理解。也就是我們go語言的安裝目錄,標(biāo)準(zhǔn)庫什么的就放在里面的。在linux中的話,默認(rèn)安裝到/usr/lib/go中,我們創(chuàng)建項目時選擇的SDK也就是這個。

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

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

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

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

實(shí)踐導(dǎo)包

現(xiàn)在我們先創(chuàng)建一個新項目,實(shí)際嘗試一下。

然后新建一個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, 直接跑一下,會發(fā)現(xiàn)直接在下載import的包了,這時候如果直接跑的話,是發(fā)現(xiàn)能直接跑的,但是發(fā)現(xiàn)報紅, 輸入也不會自動補(bǔ)全。

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

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

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

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

  • GO111MODULE=auto, 這個是默認(rèn)值,根據(jù)一些情況自動判斷是否打開go mod。
  • GO111MODULE=on,打開go mod
  • GO111MODULE=off關(guān)閉go mod

于是我們輸入go env -w GO111MODULE=on打開go mod,再次輸入go get -u github.com/gin-gonic/gin,但是會發(fā)現(xiàn)下載的速度簡直感人,這是因?yàn)榉?wù)器在國外的嘛,你懂得,我們可以設(shè)置代理。

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

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

當(dāng)然我們也可以項目放到GOPATH目錄以外。如下

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

我們可以進(jìn)入GOPATH目錄下的pkg目錄,會發(fā)現(xiàn)我們導(dǎo)入的包在這里面的。

我們也可以進(jìn)入goland,

發(fā)現(xiàn)外部庫有兩個,一個是SDK,也就是go的安裝目錄(GOROOT),標(biāo)準(zhǔn)庫就在這里的。另一個是go mod,就是我們剛剛導(dǎo)入的,放到GOPATH/pkg下的包。

到此這篇關(guān)于手把手教你導(dǎo)入Go語言第三方庫的文章就介紹到這了,更多相關(guān)Go導(dǎo)入第三方庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 多階段構(gòu)建優(yōu)化Go?程序Docker鏡像

    多階段構(gòu)建優(yōu)化Go?程序Docker鏡像

    這篇文章主要為大家介紹了多階段構(gòu)建優(yōu)化Go?程序Docker鏡像,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 詳解golang中的閉包與defer

    詳解golang中的閉包與defer

    閉包一個函數(shù)與其相關(guān)的引用環(huán)境組合的一個實(shí)體,其實(shí)可以理解為面向?qū)ο笾蓄愔械膶傩耘c方法,這篇文章主要介紹了golang的閉包與defer,需要的朋友可以參考下
    2022-09-09
  • go?install和go?get的區(qū)別實(shí)例詳解

    go?install和go?get的區(qū)別實(shí)例詳解

    go install是Golang用來編譯和安裝自定義package的工具,下面這篇文章主要給大家介紹了關(guān)于go?install和go?get區(qū)別的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • golang中sync.Once只執(zhí)行一次的原理解析

    golang中sync.Once只執(zhí)行一次的原理解析

    在某些場景下,我們希望某個操作或者函數(shù)僅被執(zhí)行一次,比如單例模式的初始化,一些資源配置的加載等,golang中的sync.Once就實(shí)現(xiàn)了這個功能,本文就和大家一起解析sync.Once只執(zhí)行一次的原理,需要的朋友可以參考下
    2023-09-09
  • Golang的md5 hash計算操作

    Golang的md5 hash計算操作

    這篇文章主要介紹了Golang的md5 hash計算操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Golang之如何讀取文件內(nèi)容

    Golang之如何讀取文件內(nèi)容

    這篇文章主要介紹了Golang之如何讀取文件內(nèi)容問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Golang Mutex互斥鎖深入理解

    Golang Mutex互斥鎖深入理解

    這篇文章主要為大家介紹了Golang Mutex互斥鎖深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • go語言int64整型轉(zhuǎn)字符串的實(shí)現(xiàn)

    go語言int64整型轉(zhuǎn)字符串的實(shí)現(xiàn)

    本文主要介紹了go語言int64整型轉(zhuǎn)字符串的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • go mock模擬接口的實(shí)現(xiàn)

    go mock模擬接口的實(shí)現(xiàn)

    本文主要介紹了go mock模擬接口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Go語言中處理錯誤的技巧分享

    Go語言中處理錯誤的技巧分享

    編寫 Go 語言程序時,有效地處理錯誤是至關(guān)重要的,Go 語言提供了一些強(qiáng)大的工具和模式來處理錯誤,本文將介紹這些方法,以便編寫健壯的 Go 代碼,更好地處理錯誤,需要的朋友可以參考下
    2023-09-09

最新評論