时间:2021-05-22
前言
golang不允许循环import package ,如果检测到 import cycle ,会在编译时报错,通常import cycle是因为设计错误或包的规划问题。
以下面的例子为例,package a依赖package b,同事package b依赖package a
package b:
package bimport ( "fmt" "github.com/mantishK/dep/a")type B struct {}func (b B) PrintB() { fmt.Println(b)}func NewB() *B { b := new(B) return b}func RequireA() { o := a.NewA() o.PrintA()}就会在编译时报错:
import cycle not allowed
package github.com/mantishK/dep/a
imports github.com/mantishK/dep/b
imports github.com/mantishK/dep/a
现在的问题就是:
A depends on B
B depends on A
那么如何避免?
引入package i, 引入interface
让package b import package i
引入package c
现在依赖关系如下:
A depends on B
B depends on I
C depends on A and B
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前面已经介绍过几种基本语句(print,import,赋值语句),下面我们来介绍条件语句,循环语句。一.print和import的更多信息1.1使用逗号输出A.
python中的导入关键字:import以及fromimport1、import import一般用于导入包以及模块。 不过有个小问题: (1)当导入的是
导入头文件?123#import#import#import核心代码:?1234567891011121314151617181920212223242526+
import介绍import语句作用就是用来导入模块的,它可以出现在程序中的任何位置。import语句语法使用import语句导入模块,import语句语法如下
前言最近在开发智能家居项目hestia-rpi项目中,由于代码结构层级划分不合理,导致了循环引用(import)module失败的问题,错误如下:Traceba