这种情况下,可以将被导入的包中的函数提取出来,放到一个独立的包中,然后让主程序和其他函数都导入这个独立的包即可。这样就避免了循环导入的问题。

例如,假设有一个包 A,其中定义了一个函数 foo,另外有一个包 B,其中有一个函数 bar,bar 依赖于 foo。如果直接让 bar 导入 A,就会产生循环导入的问题。此时可以将 foo 提取出来,放到一个独立的包 C 中,然后让 A 和 B 都导入 C 即可。这样就避免了循环导入的问题。

具体实现方法如下:

  1. 创建一个独立的包,例如叫做 utils,用来存放公共的函数。
  2. 将包 A 中的函数 foo 移动到 utils 包中,并修改函数名为 UtilsFoo。
  3. 在包 A 中导入 utils 包,调用 UtilsFoo 函数。
  4. 在包 B 中导入 utils 包,调用 UtilsFoo 函数。
  5. 编译运行代码,测试是否正常。

通过这种方式,就可以避免循环导入的问题。

golang 主程序导入一个包 其他函数也导入这个包 提示 import cycle not allowed 需要怎么处理

原文地址: http://www.cveoy.top/t/topic/tJX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录