亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Golang中Model的具體使用

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

導語

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

使用之前的準備

在安裝Go版本后,這個功能默認是關閉的,需要我們手動設置環(huán)境變量進行開啟,設置方式如下

//go命令行將不會支持module功能
O111MODULE=off
//go命令行會使用modules,而一點也不會去GOPATH目錄下查找。
GO111MODULE=on
//自動進行
GO111MODULE=auto

開始使用

為了更加直觀的看到model使用之后的好處,建議在GOPATH目錄之外進行創(chuàng)建一個目錄進行練習,首先我們創(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

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

module main
go 1.12

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

go run ./main

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

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

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

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

add.go

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

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

go mod init github.com/yuwe1/modpratice

然后使用git初始化我們的倉庫

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

倉庫顯示如下:

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

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é)果。】

修改版本

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

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

此時我們只需要添加一個新的版本就行了命令如下

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

最終我們看到了倉庫多了一個版本

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

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

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

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

Go Model的其它命令

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

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

相關文章

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

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

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

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

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

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

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

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

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

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

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

    簡單談談Golang中的字符串與字節(jié)數(shù)組

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

    一文帶你了解Golang中reflect反射的常見錯誤

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

    go語言中[]*int和*[]int的具體使用

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

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

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

    Go語言異常處理error、panic、recover的使用

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

最新評論