亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么是$GOPATH[i]和$GOPATH[d]?

什么是$GOPATH[i]和$GOPATH[d]?

Go
慕的地6264312 2022-08-09 20:41:41
Go 模塊參考的一節描述了一些最小模塊兼容性的規則。本節中有一個條件列表,其中兩個如下所示:不存在目錄(對于任何根目錄),$GOPATH[i]/src/$modpath/$vn/$suffix$GOPATH[i]該文件存在(對于某些根目錄),并將模塊路徑聲明為 ,$GOPATH[d]/src/$modpath/go.mod$GOPATH[d]$modpath/$vn在這種情況下,什么是 和 ?(假設我們知道什么是。$GOPATH[i]$GOPATH[d]$GOPATH
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

如命令的文檔所述:go

GOPATH 環境變量列出了查找 Go 代碼的位置。在 Unix 上,該值是一個以冒號分隔的字符串。在 Windows 上,該值是以分號分隔的字符串。在計劃 9 上,該值是一個列表。

如果未設置環境變量,則 GOPATH 默認為用戶主目錄中名為“go”的子目錄(Unix 上為 $HOME/go,Windows 上的 %USERPROFILE%\go),除非該目錄包含 Go 發行版。運行“go env GOPATH”以查看當前的GOPATH。

(來源)

因此,您引用的語法僅用于描述 GOPATH 中的項,正如我們所看到的,它可以是一個列表,而不僅僅是對單個路徑的引用。$GOPATH[i]

讓我們假設我的 Linux 機器上有以下內容:,并且我正在處理 .GOPATH/home/me/go:/gofaster/home/me/go/src/example.com/testing

最小模塊兼容性規則會按順序說,即。為了解決我的依賴關系,Go會檢查:example.com/utils/v2

  • 我在(即供應商目錄)中沒有軟件包/home/me/go/src/example.com/testing/vendor/example.com/utils/v2

  • 我沒有在 none 中或 (即檢查兩個 gopath) 中沒有包。/home/me/go/src/example.com/utils/v2/gofaster/src/example.com/utils/v2

  • 我在其中一個或中有一個包(注意缺少v2)。/home/me/go/src/example.com/utils/gofaster/src/example.com/utils

如果我在這兩個目錄中都有一個包,那么它將用于解析依賴關系。


查看完整回答
反對 回復 2022-08-09
  • 1 回答
  • 0 關注
  • 136 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號