Maison > Article > développement back-end > Problème d'importation de packages personnalisés GoLang
L'éditeur php Xinyi est là pour vous présenter un problème courant dans GoLang : le problème d'importation de packages personnalisés. Dans le développement du langage Go, nous devons souvent utiliser des packages personnalisés pour implémenter certaines fonctions spécifiques. Cependant, lors de l'importation de packages personnalisés, certains problèmes surviennent parfois, tels qu'un package introuvable, des conflits de noms de package, etc. Cet article répondra à ces questions en détail et fournira des solutions pour aider les développeurs à mieux gérer les problèmes d'importation de packages personnalisés et à améliorer l'efficacité du développement.
J'apprends le golang et j'ai rencontré un problème.
J'ai créé le fichier mod en utilisant go mod init main
Ensuite, j'ai créé les dossiers de contrôleur et de routage comme indiqué ci-dessous :
├── contollers │ └── users.controller.go ├── routes │ ├── index.go │ └── users.routes.go ├── vendor │ └── modules.txt ├── go.mod ├── go.sum └── main.go
Dans le fichier mod, le module ressemble à ceci
模块main
Maintenant, lorsque j'essaie d'importer le contrôleur dans le routeur, cela me donne une erreur d'importation.
J'ai fait ce qui suit. Essayez - 1
import ( "$gopath/controllers" "github.com/gin-gonic/gin" )
Cela donne invalid import path: "$gopath/controllers"syntax
erreur
Essayez - 2
import ( "$gopath/main/controllers" "github.com/gin-gonic/gin" )
Même erreur
Essayez - 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") } }
routeur.go
package routes import ( "bootcamp.com/server/controllers" "github.com/gin-gonic/gin" ) func UserRouters(inComingRoutes *gin.Engine) { inComingRoutes.GET("/api/health", controllers.HealthCheck()); }
Lance une erreur comme celle-ci, 无法导入main/controllers(没有必需的模块提供包“main/controllers”)
Je suis coincé avec ce problème depuis 3-4 heures, quelqu'un peut-il me suggérer comment importer ce contrôleur dans mes itinéraires.
Merci d'avance.
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
Changer la table des matières contollers
重命名为 controllers
以匹配包名(缺少 r
).
Supprimer vendor
dossier.
Instructions :
main
a une signification particulière en go. Cité de spécification golang : Un programme complet est créé en liant transitivement un seul package non importé appelé paquet principal avec tous ses packages importés. Le package main doit avoir le nom de package main et déclarer une fonction main qui ne prend aucun paramètre et ne renvoie aucune valeur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!