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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決Golang map range遍歷結(jié)果不穩(wěn)定問題
這篇文章主要介紹了解決Golang map range遍歷結(jié)果不穩(wěn)定問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式
這篇文章主要介紹了Golang IPv4 字符串與整數(shù)互轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11golang中strconv.ParseInt函數(shù)用法示例
這篇文章主要介紹了golang中strconv.ParseInt函數(shù)用法,實例分析了strconv.ParseInt函數(shù)將字符串轉(zhuǎn)換為數(shù)字的簡單使用方法,需要的朋友可以參考下2016-07-07簡單談談Golang中的字符串與字節(jié)數(shù)組
這篇文章主要給大家介紹了關于Golang中字符串與字節(jié)數(shù)組的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Golang具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-03-03Go語言異常處理error、panic、recover的使用
GO語言中引入的異常的處理方式為error、panic、recover ,本文主要介紹了Go語言異常處理error、panic、recover的使用,感興趣的可以了解一下2024-08-08