文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

从单独的文件夹加载模型时如何解决“不允许导入周期”的问题

2024-04-05 00:00

关注

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《从单独的文件夹加载模型时如何解决“不允许导入周期”的问题》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

我打算模块化我的项目,但遇到一些问题。

通常情况下,我会将所有模型文件放入同一个包模型中(同一个文件夹,大约30个文件),但现在我想将它们放入单独的文件夹中以便更容易管理(每个模块都会有自己的模型文件夹)。

但是,如果我尝试将模型放入单独的文件夹中,如下图所示,我将收到“导入循环错误”,因为它们不是同一个包(将使用两个表相互查找,这就是发生错误的地方)。

https://i.stack.imgur.com/i7Hhr.png

那么有没有办法将模型放在单独的文件夹中或更好的方法来管理模型?


解决方案


我不确定这是否是一个好的策略。但如果我处于你的情况,我会尝试通过以下方法解决它。

假设我们有两个包 package apackage b

package a

import ".../code/module2"

var stra="hi! i'm a and i'm calling b: "

func funca() string {
    return "inside a"
}

func atob()  {
    fmt.println(stra+b.funcb())
}

package b

import ".../code/module1"

var strb="hi! i'm b and i'm calling a: "

func funcb()  string {
    return "inside b"
}

func btoa()  {
    fmt.println(strb+a.funca())
}

您不能使用函数 atob()btoa() 因为它会形成循环。解决这个问题的一种可能方法是在每个模块内创建子目录。移动那些构成循环的代码部分。就像这里的 atob()btoa()

extraa.go 内部:

package extended

import (
    "fmt"
    . ".../code/module1"
    b ".../code/module2"
)
func atob()  {
    fmt.println(stra+b.funcb())
}

我使用.导入了package a,以便我可以在本地使用a的对象,并导入package b来调用funcb()。我还将 btoa() 移动到 module2 内的另一个子目录。

现在我可以使用这两个函数而无需进行任何循环。

package main

import (
    extraa ".../code/module1/extended"
    extrab ".../code/module2/extended"
)

func main()  {
    extraa.atob()
    extrab.btoa()
}

输出:

Hi! I'm A and I'm calling B: Inside B
Hi! I'm B and I'm calling A: Inside A

本篇关于《从单独的文件夹加载模型时如何解决“不允许导入周期”的问题》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注编程网公众号!

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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