文章目錄
- 1. 項目目錄結構
- 2. 創建自定義包
- 3. 初始化模塊
- 4. 導入自定義包
- 5. 相對路徑導入
在Go語言中導入自定義包需要遵循一定的目錄結構和導入規則。以下是詳細指南(包含兩種方式):
1. 項目目錄結構
方法1:適用于Go 1.11+ ,使用 Go Modules 管理依賴。
Go Modules(go.mod) 是官方推薦的依賴管理工具,自 Go 1.11(2018年) 起引入,并在 Go 1.16(2021年) 后成為默認模式。
也可使用go help查看是否有該工具。
myproject/
├── go.mod // 模塊定義文件
├── main.go // 主程序
└── mypackage/ // 自定義包└── mypackage.go
方法2、如果你的 Go 版本較舊(如 Go 1.10 或更早),確實沒有 go mod 功能,而是使用 GOPATH 模式管理包。這里則需要手動導入包。新版本該功能向下兼容。
myproject/
├── main.go // 主程序
└── mypackage/ // 自定義包└── mypackage.go
2. 創建自定義包
在mypackage/mypackage.go中:
package mypackage // 包聲明必須與目錄名一致import "fmt"// 可導出的函數(首字母大寫)
func SayHello() {fmt.Println("Hello from mypackage!")
}// 可導出的變量
const Version = "1.0.0"
3. 初始化模塊
適用于Go 1.11+ 版本的方法一。
在項目根目錄執行:
bash
go mod init github.com/yourusername/myproject
這會創建go.mod文件,內容類似:
module github.com/yourusername/myprojectgo 1.21
4. 導入自定義包
適用于Go 1.11+ 版本的方法一。
package mainimport ("fmt""github.com/yourusername/myproject/mypackage" // 導入自定義包
)func main() {// 調用自定義包中的公共函數mypackage.SayHello()// 訪問自定義包中的公共變量fmt.Println("Package version:", mypackage.Version)
}
5. 相對路徑導入
適用于Go 1.11以下 版本的方法二。
package mainimport "fmt"
import "./mypackage" // 不推薦長期使用func main() {// 調用自定義包中的公共函數mypackage.SayHello()// 訪問自定義包中的公共變量fmt.Println("Package version:", mypackage.Version)
}