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

Golang中Model的具體使用

 更新時(shí)間:2023年04月04日 10:35:34   作者:小道士寫(xiě)程序  
本文主要介紹了Golang中Model的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

導(dǎo)語(yǔ)

我們都知道在Golang中我們一般都是設(shè)置GOPATH目錄,這個(gè)目錄主要存放我們的第三方包,這個(gè)方式一直不是很方便,今天給大家介紹Go 1.11版本中推出的GoModul使用方法,學(xué)過(guò)java的同學(xué),可能對(duì)maven包有所了解,Model的包管理類(lèi)似于這種方式。

使用之前的準(zhǔn)備

在安裝Go版本后,這個(gè)功能默認(rèn)是關(guān)閉的,需要我們手動(dòng)設(shè)置環(huán)境變量進(jìn)行開(kāi)啟,設(shè)置方式如下

//go命令行將不會(huì)支持module功能
O111MODULE=off
//go命令行會(huì)使用modules,而一點(diǎn)也不會(huì)去GOPATH目錄下查找。
GO111MODULE=on
//自動(dòng)進(jìn)行
GO111MODULE=auto

開(kāi)始使用

為了更加直觀的看到model使用之后的好處,建議在GOPATH目錄之外進(jìn)行創(chuàng)建一個(gè)目錄進(jìn)行練習(xí),首先我們創(chuàng)建如下目錄結(jié)構(gòu):

main.go

package main
 
import (
    log "github.com/sirupsen/logrus"
)
 
func main() {
    log.WithFields(log.Fields{
        "animal": "walrus",
    }).Info("A walrus appears")
}

接著我們用go mod命令初始化我們的目錄

go mod init main

運(yùn)行成功后我們會(huì)看到在我們的目錄結(jié)構(gòu)中出現(xiàn)了go.mod的文件

module main
go 1.12

現(xiàn)在我們開(kāi)始直接運(yùn)行我們的代碼執(zhí)行命令

go run ./main

在控制臺(tái)會(huì)出現(xiàn)如下輸出,這些輸出便是將需要的包進(jìn)行版本下載同時(shí)顯示了我們的程序代碼的輸出

并且在我們的目錄結(jié)構(gòu)中同時(shí)又添加了一個(gè)文件go.sum如下圖所示存放著我們包的具體信息

發(fā)布版本引用自己封裝的包

有時(shí)候我們自己寫(xiě)了一個(gè)包,包中提供了一些公用的方法,應(yīng)該如何利用model進(jìn)行管理呢首先我們創(chuàng)建如下目錄

add.go

package common
 
func Add(a, b int64) int64 {
    return a + b
}

現(xiàn)在我們開(kāi)始初始化mod在我們的主目錄使用如下方式

go mod init github.com/yuwe1/modpratice

然后使用git初始化我們的倉(cāng)庫(kù)

git init
git remote add origin git@github.com:yuwe1/modpratice.git
git add demo2/ go.mod
git commit -am "add Add func"
git push --tags
git push -u origin master

倉(cāng)庫(kù)顯示如下:

現(xiàn)在讓我們創(chuàng)建另一個(gè)目錄

main.go

package main
 
import (
    "fmt"
 
    "github.com/yuwe1/modpratice/demo2/common"
)
 
func main() {
    fmt.Println(common.Add(1, 2))
}

使用如下命令

go mod init main
go run ./main

顯示結(jié)果如下:【成功顯示出了我們最終的結(jié)果?!?/p>

修改版本

在上面的使用中我們成功的引用了自己的代碼,但是如果我們倉(cāng)庫(kù)的代碼進(jìn)行了升級(jí),我們進(jìn)行了修改之后,又該如何引用最新的代碼呢比如修改Add函數(shù)

package common
 
import (
    "fmt"
)
 
func Add(a, b int64) int64 {
    fmt.Println("修改了Add函數(shù)")
    return a + b
}

此時(shí)我們只需要添加一個(gè)新的版本就行了命令如下

git add ../demo2/common/add.go
git commit -m "fix Add and add hello"
git tag v1.0.1
git push --tags origin master

最終我們看到了倉(cāng)庫(kù)多了一個(gè)版本

現(xiàn)在我們使用最新的版本,直接go get 命令如下

go get github.com/yuwe1/modpratice@v1.0.1

我們首先看一下go.sum里的文件,可以看到多了一個(gè)版本

現(xiàn)在我們重新運(yùn)行,會(huì)發(fā)現(xiàn)輸出的結(jié)果已經(jīng)發(fā)生了改變。

Go Model的其它命令

go mod tidy //拉取缺少的模塊,移除不用的模塊。
go mod download //下載依賴(lài)包
go mod graph //打印模塊依賴(lài)圖
go mod vendor //將依賴(lài)復(fù)制到vendor下
go mod verify //校驗(yàn)依賴(lài)
go mod why //解釋為什么需要依賴(lài)
go list -m -json all //依賴(lài)詳情

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

相關(guān)文章

  • Go命令行參數(shù)解析flag 包使用示例詳解

    Go命令行參數(shù)解析flag 包使用示例詳解

    這篇文章主要介紹了Go命令行參數(shù)解析flag 包使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • 解決Golang map range遍歷結(jié)果不穩(wěn)定問(wèn)題

    解決Golang map range遍歷結(jié)果不穩(wěn)定問(wèn)題

    這篇文章主要介紹了解決Golang map range遍歷結(jié)果不穩(wěn)定問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式

    Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式

    這篇文章主要介紹了Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解Go使用Viper和YAML管理配置文件

    詳解Go使用Viper和YAML管理配置文件

    在軟件開(kāi)發(fā)中,配置管理是一項(xiàng)基本但至關(guān)重要的任務(wù),它涉及到如何有效地管理應(yīng)用程序的配置變量,本文將探討如何使用Viper庫(kù)配合YAML配置文件來(lái)實(shí)現(xiàn)高效的配置管理,感興趣的可以了解下
    2024-04-04
  • golang中strconv.ParseInt函數(shù)用法示例

    golang中strconv.ParseInt函數(shù)用法示例

    這篇文章主要介紹了golang中strconv.ParseInt函數(shù)用法,實(shí)例分析了strconv.ParseInt函數(shù)將字符串轉(zhuǎn)換為數(shù)字的簡(jiǎn)單使用方法,需要的朋友可以參考下
    2016-07-07
  • 簡(jiǎn)單談?wù)凣olang中的字符串與字節(jié)數(shù)組

    簡(jiǎn)單談?wù)凣olang中的字符串與字節(jié)數(shù)組

    這篇文章主要給大家介紹了關(guān)于Golang中字符串與字節(jié)數(shù)組的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Golang具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 一文帶你了解Golang中reflect反射的常見(jiàn)錯(cuò)誤

    一文帶你了解Golang中reflect反射的常見(jiàn)錯(cuò)誤

    go?反射的錯(cuò)誤大多數(shù)都來(lái)自于調(diào)用了一個(gè)不適合當(dāng)前類(lèi)型的方法,?而且,這些錯(cuò)誤通常是在運(yùn)行時(shí)才會(huì)暴露出來(lái),而不是在編譯時(shí),如果我們傳遞的類(lèi)型在反射代碼中沒(méi)有被覆蓋到那么很容易就會(huì)?panic。本文就介紹一下使用?go?反射時(shí)很大概率會(huì)出現(xiàn)的錯(cuò)誤,需要的可以參考一下
    2023-01-01
  • go語(yǔ)言中[]*int和*[]int的具體使用

    go語(yǔ)言中[]*int和*[]int的具體使用

    本文主要介紹了go語(yǔ)言中[]*int和*[]int的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Go遍歷struct,map,slice的實(shí)現(xiàn)

    Go遍歷struct,map,slice的實(shí)現(xiàn)

    本文主要介紹了Go語(yǔ)言遍歷結(jié)構(gòu)體、切片和字典的方法,對(duì)大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • Go語(yǔ)言異常處理error、panic、recover的使用

    Go語(yǔ)言異常處理error、panic、recover的使用

    GO語(yǔ)言中引入的異常的處理方式為error、panic、recover ,本文主要介紹了Go語(yǔ)言異常處理error、panic、recover的使用,感興趣的可以了解一下
    2024-08-08

最新評(píng)論