我们在对EasyCVR 开发时,开发环境启动程序出现报错,错误信息: import cycle not allowed。这个报错信息应该是大家在写 Golang 程序中比较普遍的一个报错,那么本文就从EasyCVR的开发中和大家分享一下这个报错是如何解决的。
错误信息的意思是A包调用B包,B包调用A包,导致了重复循环调用。正常项目中这个错误可能就不是A包调用B包那么简单,可能是A调用的B,B调用的C,C调用了A,出现多层的调用,如果是两个包之间的问题可以通过一个中间包做处理,但是多层就无法用一个中间包处理。
这个过程大致如下:
A 是应用程序的框架级结构体,在 A 包含子模块 B 和 C 的指针;
B 为了方便的使用应用的其他子模块(比如 C )功能,所以在其结构体包含了 A 的指针;
C 要调用 A 包中的某个方法。
如果在项目中出现这种多层循环调用,我们就引入一个包来解决项目问题:
1.新建一个包文件并引入包
2.在项目中使用
3.在项目中调用
在EasyCVR中我们通过分包来解决该问题,当然也有情况可以通过定义接口的方法解决,大家可以根据自身的情况进行判断。如果还想了解EasyCVR开发过程中的功能实现,欢迎关注我们。