Maison > développement back-end > Golang > le corps du texte

Aller importer des boucles n'est pas autorisé

PHPz
Libérer: 2024-02-08 23:27:19
avant
655 Les gens l'ont consulté

不允许 Go 导入循环

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.

Contenu des questions

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
Copier après la connexion

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"`
}
Copier après la connexion

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

Faculté->Cours->Faculté

Solution

Vous devez utiliser une structure de dossiers différente

Course
    --- Course.controler.go
    --- Course.service.go

Faculty
    --- Faculty.controller.go
    --- Faculty.service.go

Models
    --- Course.model.go
    --- Faculty.model.go
Copier après la connexion

ou

School
    --- Course.controler.go
    --- Course.model.go
    --- Course.service.go
    --- Faculty.controller.go
    --- Faculty.model.go
    --- Faculty.service.go
Copier après la connexion

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!