Go學習 一文徹底搞懂go mod使用

2022-09-14 17:18:14 字數 3414 閱讀 1711

jquery中文網為您提供一文徹底搞懂go mod使用等資源,歡迎您收藏本站,我們將為您提供最新的一文徹底搞懂go mod使用資源

目錄

一、如何使用go mod

二、golang開啟mod後import報紅解決

三、go mod 怎麼匯入本地其它專案的包?

四、完整**

【此時專案可以放在任意位置,不必非要放在gopath目錄下】

}1、開啟cmd命令提示框,設定臨時環境變數注意  也可替換成阿里雲的 

2、再次執行 go get github.com/kataras/iris 也可以加 -v -u ,如下

3、使用初始化生成go.mod檔案

4、新增依賴執行

5、再次執行主函式

go run test.go,訪問http://localhost:8080/:

在golang中,開啟mod模式後,import包變紅,但是程式可以正常執行

如下所示:

猜測是索引路徑出了問題,當前專案的依賴路徑如下,可以看到只有sdk和gopath,沒有go mod模組

新建go專案,然後老老實實的go mod init [專案名],然後go build拉包,一切正常,這時,在setting裡再啟用go mod勾選上

然後,奇蹟出現了,我們的依賴中,多了乙個go mod路徑,這時原來報紅的import路徑消失了!!!

通過上圖中的引入依賴可以清晰地看到,我們啟用go mod後,很明顯的由gopath路徑變成了go mod路徑

也就是說,之前的基於gopath的路徑訪問方式不管用了,並且go mod不支援相對路徑的引入方式,這個時候如果要引入其他模組,怎麼做呢?

專案結構如下所示,需要在modeldemo模組中引入model模組

hellodemo.go是應用的入口,main 所在位置,而model可以理解為你寫的乙個公共的庫,其中提供了乙個函式 hello()。現在,要在 hellodemo.go中呼叫 model中的 hello() 函式。傳統的方式是基於gopath或者相對路徑的方式,但go mod均不支援,那如何解決呢?

1、model模組中的 go.mod內容如下:

(在model目錄下執行go mod init生成go.mod檔案)

2、model模組中的mymodel.go內容如下:

3、modeldemo模組中的 go.mod內容如下:

(在modeldemo目錄下執行go mod init生成go.mod檔案)

go.mod 提供了module,requirereplaceexclude四個命令

現需要引入model模組

此處的 replac稍微介紹下,之所以要是 github.com/model 的格式,是因為在 go1.13 中, go module 名稱規範要求路徑的第一部分必須滿足網域名稱規範,否則可能匯報類似malformed module path "model": missing dot in first path element這樣的錯誤。當然,在 go1.12 不會有報這個錯誤。建議的話,如果是公司內部使用,可以替換成公司內部網域名稱。

引入上面的replace內容侯,再次執行hellodemo.go,就會自動生成上面的require內容

replace 的第二個引數指定了不從遠端獲取,而是本地某個路徑下的模組替換 github.com/model。

4、hellodemo.go內容如下:

此時,執行 go run hellodemo.go 是可以成功執行的。

一文帶你徹底搞懂ThreadLocal

共享變數一直是併發中的老大難問題,每個執行緒都對它有操作權,所以執行緒之間的同步很關鍵,鎖也就應運而生。這裡換乙個思路,是否可以把共享變數私有化?即每個執行緒都擁有乙份共享變數的本地副本,每個執行緒對應乙個副本,同時對共享變數的操作也改為對屬於自己的副本的操作,這樣每個執行緒處理自己的本地變數,形成...

一文搞懂transform skew

目錄 如何理解斜切 skew,先看乙個 demo。在下面的 demo 中,有 4 個正方形,分別是 紅色 不做 skew 變換,綠色 x 方向變換,藍色 y 方向變換,黑色 兩個方向都變換,拖動下面的滑塊可以檢視改變 skew 角度後的效果。切換 selector 可以設定 transform or...

一文徹底搞懂linux許可權修改及含義

英文 change mode change the permissions mode of a file 作用 改變檔案或目錄許可權 語法 chmod 檔名或目錄 u user 針對所有者,g group 針對所屬組,o others 針對其他人,a all 真多所有的 增加許可權 減少許可權 重新...