循环引用是GO语言开发工程师经常会遇到的问题。SO所谓的周期参考是在包装中引用Barb B,并将B软件包引入C中,并在C软件包中介绍一个软件包A。当项目编译时,它将报告周期参考是错误的。请注意,这是错误的,而不是警告。
我们必须证明实际的演示:
我们定义三个文件Helloa,Hellob和Helloc。
然后执行主函数,发现错误如下:
可以看出,周期的引用归因于GO中的错误!
关于这个问题,Go语言的父亲Rob Pike回答了答案,他认为:
首先,周期参考肯定会导致程序构建缓慢。
其次,如果项目中有循环引用,则模块和模块之间将有相互调用。随着项目的发展,模块之间的依赖关系将越来越多。最终,边界越高,最初的边界变得越来越模糊,最后耦合在一起,变得一团糟。
此外,周期参考也可能导致无限递归,这会导致其他问题。
重要的一点是:设计代码结构!交叉分解