editor php Xinyi di sini untuk memperkenalkan kepada anda masalah biasa dalam GoLang: masalah import pakej tersuai. Dalam pembangunan bahasa Go, kita selalunya perlu menggunakan pakej tersuai untuk melaksanakan beberapa fungsi tertentu. Walau bagaimanapun, apabila mengimport pakej tersuai, beberapa masalah kadangkala berlaku, seperti pakej tidak ditemui, konflik nama pakej, dsb. Artikel ini akan menjawab soalan ini secara terperinci dan menyediakan penyelesaian untuk membantu pembangun menangani masalah import pakej tersuai dengan lebih baik dan meningkatkan kecekapan pembangunan.
Saya sedang belajar golang dan menghadapi masalah.
Saya mencipta fail mod menggunakan go mod init main
Seterusnya saya mencipta folder pengawal dan penghalaan seperti yang ditunjukkan di bawah:
├── contollers │ └── users.controller.go ├── routes │ ├── index.go │ └── users.routes.go ├── vendor │ └── modules.txt ├── go.mod ├── go.sum └── main.go
Dalam fail mod, modul kelihatan seperti ini
模块main
Sekarang apabila saya cuba mengimport pengawal ke dalam penghala ia memberi saya ralat import.
Saya telah melakukan perkara berikut. Cuba - 1
import ( "$gopath/controllers" "github.com/gin-gonic/gin" )
Ia memberikan invalid import path: "$gopath/controllers"syntax
ralat
Cuba - 2
import ( "$gopath/main/controllers" "github.com/gin-gonic/gin" )
Ralat yang sama
Cuba - 3
import ( "main/controllers" "github.com/gin-gonic/gin" )
controller.go
package controllers; import ( "fmt" "github.com/gin-gonic/gin" ) func healthcheck() gin.handlerfunc { return func (c *gin.context) { fmt.println("reached controller") } }
router.go
package routes import ( "bootcamp.com/server/controllers" "github.com/gin-gonic/gin" ) func UserRouters(inComingRoutes *gin.Engine) { inComingRoutes.GET("/api/health", controllers.HealthCheck()); }
melontar ralat seperti ini, 无法导入main/controllers(没有必需的模块提供包“main/controllers”)
Saya telah terperangkap dengan isu ini selama 3-4 jam, bolehkah seseorang mencadangkan saya cara mengimport pengawal ini ke laluan saya.
Terima kasih terlebih dahulu.
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
Tukar jadual kandungan contollers
重命名为 controllers
以匹配包名(缺少 r
).
Padam vendor
folder.
Arahan:
main
mempunyai makna istimewa dalam perjalanan. Dipetik daripada spesifikasi golang: Satu program lengkap dicipta dengan memautkan secara transitif satu pakej yang tidak diimport yang dipanggil pakej utama dengan semua pakej yang diimportnya. Pakej utama mesti mempunyai nama pakej utama dan mengisytiharkan fungsi utama yang tidak mengambil parameter dan tidak mengembalikan nilai.
Atas ialah kandungan terperinci Masalah import pakej tersuai GoLang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!