php小編新一在這裡為大家介紹一下GoLang中的一個常見問題:自訂套件匯入問題。在Go語言開發中,我們經常需要使用自訂的套件來實作一些特定的功能。然而,在匯入自訂套件時,有時會出現一些問題,例如套件找不到、套件衝突等。本文將詳細解答這些問題,並提供解決方案,幫助開發者更好地處理自訂套件匯入問題,提高開發效率。
我正在學習 golang,遇到了一個問題。
我使用 go mod init main
建立了 mod 檔
接下來我建立了控制器和路由資料夾,如下所示:
├── contollers │ └── users.controller.go ├── routes │ ├── index.go │ └── users.routes.go ├── vendor │ └── modules.txt ├── go.mod ├── go.sum └── main.go
在 mod 檔案中,模組看起來像這樣
模組main
現在,當我嘗試將控制器匯入路由器時,它給了我導入錯誤。
我一直在做以下事情。 嘗試 - 1
import ( "$gopath/controllers" "github.com/gin-gonic/gin" )
它給了 invalid import path: "$gopath/controllers"syntax
錯誤
嘗試 - 2
import ( "$gopath/main/controllers" "github.com/gin-gonic/gin" )
同樣的錯誤
嘗試 - 3
import ( "main/controllers" "github.com/gin-gonic/gin" )
控制器.go
package controllers; import ( "fmt" "github.com/gin-gonic/gin" ) func healthcheck() gin.handlerfunc { return func (c *gin.context) { fmt.println("reached controller") } }
路由器.go
package routes import ( "bootcamp.com/server/controllers" "github.com/gin-gonic/gin" ) func UserRouters(inComingRoutes *gin.Engine) { inComingRoutes.GET("/api/health", controllers.HealthCheck()); }
拋出這樣的錯誤,無法匯入main/controllers(沒有必要的模組提供套件「main/controllers」)
#我已經被這個問題困擾了 3-4 個小時,有人可以建議我如何將該控制器匯入到我的路線中。
提前致謝。
go.mod
修改模組路徑:- module main + module example.com/hello
import ( - "main/controllers" + "example.com/hello/controllers" "github.com/gin-gonic/gin" )
controller.go
(刪除尾隨的 ;
):- package controllers; + package controllers
將目錄 contollers
重新命名為 controllers
以符合套件名稱(缺少 r
)。
刪除 vendor
資料夾。
說明:
main
在go中有特殊的意義。引自 golang 規範:一個完整的程式是透過將一個名為主包的單一未導入包與其導入的所有包以傳遞方式連結起來而創建的。主包必須具有套件名稱 main 並聲明一個不帶參數且不傳回值的函數 main。
以上是GoLang自訂套件導入問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!