golang不允许循环导包,如果检测到import cycle,会在编译时报错,通常import cycle是因为设计错误或包的规划问题。

import(

"package A"

"package B"

)


如果package A中已经导入package B,而本package中又导入package B

或者 package A依赖package B,同时 package B 依赖package A

这样就会在编译时报 "import cycle not allowed"。

如何避免重复导入包的问题,就需要在设计时规划好包。