Maison >développement back-end >Golang >Aller importer des boucles n'est pas autorisé
l'éditeur php Strawberry est là pour vous présenter une règle importante : dans le langage Go, l'importation de boucles n'est pas autorisée. Cela signifie que lors de l'écriture du code Go, nous ne pouvons pas réimporter le package actuel dans le package importé. Cette disposition vise à éviter le problème des dépendances circulaires et à garantir la fiabilité et la maintenabilité du code. Si nous rencontrons une situation d'importation circulaire lors de l'écriture du code, nous devons réexaminer la structure de notre code et déterminer si nous devons refactoriser pour éviter l'apparition de dépendances circulaires. En suivant cette règle, nous pouvons écrire du code Go plus robuste et plus fiable.
Je le suis go
的新手,正在学习 go
. Je veux cette structure de dossiers où model est l'entité de la base de données,
Controller est l'endroit où se trouve le point final,
Les Services sont l'endroit où la fonctionnalité réelle se produit.
(Le problème est la structure des dossiers/packages)
Course --- Course.controler.go --- Course.model.go --- course.service.go Faculty --- Faculty.controller.go --- Faculty.model.go --- Faculty.service.go
1 L'enseignant peut avoir 0..* cours, j'ai donc implémenté la clé étrangère ici en important le package de l'enseignant
course.model.go
package course import ( "go-server/routes/faculty" "gorm.io/gorm" ) type Course struct { gorm.Model Name string `json:"name"` Code string `json:"code" gorm:"unique;size:192"` Year int `json:"year"` Description string `json:"description"` FacultyId int `json:"faculty"` Faculty faculty.Faculty `gorm:"foreignKey:FacultyId"` }Maintenant, si je suis en fonction de
Je ne peux pas l'utiliser sur course.service.go
中实现一个名为 GetCoursesForFacultyID(id)
en raison du cycle d'importation. Comment puis-je surmonter ce problème ? faculty.service
Course --- Course.controler.go --- Course.service.go Faculty --- Faculty.controller.go --- Faculty.service.go Models --- Course.model.go --- Faculty.model.goou
School --- Course.controler.go --- Course.model.go --- Course.service.go --- Faculty.controller.go --- Faculty.model.go --- Faculty.service.go
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!