在 Go 中匯入本地包
Jay Singh
2023年1月30日
Go 中的包是同一目錄中已編譯的 Go 原始碼檔案的集合。
通常,這些包將在它們之間匯出和匯入程式碼。因此,程式碼是模組化的並且易於維護。
Go 中的包目錄
工作區專案中有兩個包:dir1
和 dir2
。每個檔案生成目錄都包含在包目錄中。
└───workspace
├───dir1
├───dir2
Go 中的主要包
包的程式碼可以從任何檔案中匯出。然後,其他專案檔案可以引用該包目錄並匯入程式碼。
這允許你匯入單個包並訪問該包中包含的檔案中包含的所有程式碼。
// for files in dir1
package dir1
// for files in dir2
package dir2
在 Go 中使用 go mod init
初始化模組
匯入包時,第一步是建立一個新模組。
語法:
go mod init <module_name>
例如,在工作空間目錄下,我們可以構建一個新模組,如下所示:
go mod init workspace
該檔案提供了模組名稱和 Go 版本,因為我們沒有任何外部包。
module workspace
go 1.17
在 Go 中將原始碼檔案放置以建立包
在你的專案中構建一個新目錄並將原始碼檔案放在它下面以建立一個包。
$ touch dir1/dir1.go
$ touch dir2/dir2.go
現在讓我們為每個檔案新增一些程式碼。
// dir1.go
package dir1
funcHello1() string {
return "Hello everyone, I am from dir 1"
}
//dir2.go
package dir2
funcHello2() string {
return "Hello everyone, I am from dir 2"
}
在 Go 中使用 import()
方法匯入本地包
最後一步是匯入本地包以使用每個包中的程式碼。
在專案的根目錄下建立一個 main.go
檔案,也稱為工作區目錄。
package main
import (
"fmt"
"workspace/dir1"
"workspace/dir2"
)
funcmain() {
fmt.Println(dir1.Hello1())
fmt.Println(dir2.Hello2())
}
輸出:
Hello everyone, I am from dir 1
Hello everyone, I am from dir 2