文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

不允许 Go 导入循环

2024-02-09 05:41

关注

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.go

1 教师可以拥有 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 上使用它。我该如何克服这个问题?

师资->课程->师资

解决方法

您需要使用不同的文件夹结构

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 导入循环的详细内容,更多请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯