Maison  >  Article  >  développement back-end  >  Aller importer des boucles n'est pas autorisé

Aller importer des boucles n'est pas autorisé

PHPz
PHPzavant
2024-02-08 23:27:19635parcourir

不允许 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

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

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

ou

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer