在 Golang 中是否有可能实现类似于“相互”包导入的操作?
以 A 和 B 两个包为例,假设它们分别拥有如下函数:AFunc、BFunc 和 BFunc2。
package A
import "B"
func AFunc() {
//do stuff but also use
B.BFunc()
}
-
package B
import "A"
func BFunc() {
//do foo
}
func BFunc2() {
//do different stuff but also use
A.AFunc()
}
有没有一种方法可以不使用第三方“桥接”软件包来实现这一点?
编辑: 为了澄清问题,当然不能通过“简单地执行”来实现,因为编译器会抛出“不允许导入循环”错误。问题是,有没有比构建“桥接软件包”更清晰或更成熟的解决此问题的方法?