
php小编草莓在这里为大家介绍一条重要的规则:在Go语言中,是不允许导入循环的。这意味着在编写Go代码时,我们不能在导入的包中再次导入当前包。这样的规定是为了避免循环依赖的问题,确保代码的可靠性和可维护性。如果我们在编写代码时遇到了循环导入的情况,需要重新审视我们的代码架构,考虑是否需要进行重构来避免循环依赖的发生。通过遵守这个规则,我们能够写出更加健壮和可靠的Go代码。
我是 go 的新手,正在学习 go。我想要这种文件夹结构,其中 model 是数据库实体,
控制器是端点所在的位置,
服务是实际功能发生的地方。
(问题在于文件夹/包结构)
Course
--- Course.controler.go
--- Course.model.go
--- course.service.go
Faculty
--- Faculty.controller.go
--- Faculty.model.go
--- Faculty.service.go1 教师可以拥有 0..* 课程因此我通过导入教师包在这里实现了外键
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"`
}现在如果我在 course.service.go 中实现一个名为 GetCoursesForFacultyID(id) 的函数
由于导入周期,我无法在 faculty.service 上使用它。我该如何克服这个问题?
师资->课程->师资
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。它虽然不是Linux系统核心的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Linux系统
24
您需要使用不同的文件夹结构
Course
--- Course.controler.go
--- Course.service.go
Faculty
--- Faculty.controller.go
--- Faculty.service.go
Models
--- Course.model.go
--- Faculty.model.go或
School
--- Course.controler.go
--- Course.model.go
--- Course.service.go
--- Faculty.controller.go
--- Faculty.model.go
--- Faculty.service.go以上就是不允许 Go 导入循环的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号