導覽
我們希望設計具有以下結構的專案:
├── main.go └── models └── user.go
我們希望設計具有以下結構的專案:
在此佈局中,main.go 匯入了user.go 文件,該文件定義了User 類型。然而,編譯器警告主包中未定義 User。
為什麼會出現此錯誤,以及我們如何在保持模組化專案結構的同時解決它?
Go 模組,在 Go 1.11.1 中引入並在 Go 1.11.3 中預設啟用,位址這個問題。透過啟用模組(透過 GO111MODULE=on 環境變數),我們可以建立具有版本化依賴關係和分層組織的模組化專案。
/Users/myuser/Projects/my-project/ ├── go.mod ├── main.go └── src/ └── models/ └── user.go
package main import ( "fmt" "main/src/models/user" ) func main() { fmt.Println(user.User{"new_user"}) }
在main.go 中使用import "main/src/models/user" 匯入user.go 檔案。
package user type User struct { Login string }
以上是為什麼從子資料夾匯入檔案會導致 Go 中出現「未定義」錯誤,如何使用 Go Modules 來解決該錯誤,同時保持模組化專案結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!