Go 筆記一 工作區和GOPATH

2021-08-23 12:23:00 字數 1073 閱讀 5098

**包中可以任意個.go 副檔名的原始碼檔案,需要被宣告為屬於同乙個**包。

**包的名稱一般會與這些原始碼檔案所在的目錄同名。如果不同名,那麼在構建、安裝的過程中會以**包名稱為準。

每個**包都會有匯入路徑。

**包的匯入路徑是其他**在使用該包中的程式實體時需要引入的路徑。

在實際使用程式實體之前,我們必須先導入其所在的**包。具體的方式就是import該**包的匯入路徑。

在工作區中,乙個**包的匯入路徑實際上就是從 src 子目錄,到該包的實際儲存位置的相對路徑。

執行go build命令的時候,預設不會編譯目標**包所依賴的那些**包。

如果被依賴的**包的歸檔檔案不存在,或者原始碼檔案有了變化,那它還是會被編譯。

執行命令的時候加入標記-a,可強制編譯。

此時,不但目標**包總是會被編譯,它依賴的**包也總會被編譯,即使依賴的是標準庫中的**包也是如此。

除了環境變數 gopath 的值可以是乙個目錄的路徑,也可以包含多個目錄路徑,每個目錄都代表 go 語言的乙個工作區(workspace)。

意義在於**結構的分層。

三個緯度延伸總結回答:

總執行順序的角度

引入的包 -> 當前包的變數常量 -> init()[多個同一包則按照順序執行] -> main函式

依賴包執行順序

被依賴的總是優先執行初始化,乙個包只會被初始化一次。 a引入b,b引入c,則執行順序c -> b -> a

單個包執行順序的角度

總的前提:按照包中源檔名的字典順序來排序執行

當前包排序後的變數常量 -> 排序後的init()

不衝突,因為按順序找到所需要的包就不往後找了

go語言學習筆記(一) GoPath

windows下安裝go和設定多個工作區 linux下安裝go和配置工作區 goroot golang的安裝路徑 gopath 可以理解為工作目錄或者工作區,也是平時接觸最多的乙個變數。它可以是乙個目錄,可以是多個目錄路徑,每個目錄代表乙個工作區。這些目錄用於放置go語言的原始碼檔案 src 以及安...

go語言的工作空間和GOPATH環境變數

go語言並沒有強制一定要使用一定的工作空間和專案結構,對於小型的go程式依靠go run等命令就可以直接編譯執行。然而,保持良好的工作空間和檔案結構,對於管理源 和發布程式都是非常有幫助的。對於大型的go語言專案,工作空間則是一定要的。go語言的工作空間其實就是乙個檔案目錄,目錄中必須包含src p...

go語言的工作空間和GOPATH環境變數介紹

go語言並沒有強制一定要使用一定的工作空間和專案結構,對於小型的go程式依靠go run等命令就可以直接編譯執行。然而,保持良好的工作空間和檔案結構,對於管理源 和發布程式都是非常有幫助的。對於大型的go語言專案,工作空間則是一定要的。1 go語言的工作空間結構 go語言的工作空間其實就是乙個檔案目...