Golang中解决"import cycle not allowed"的2种方法
相信不少 `Gopher` 在写 `Golang` 程序都遇到过 `import cycle not allowed` 问题,本人最近研读 [go-ethereum](https://github.com/ethereum/go-ethereum) 源码时,发现定义 `interface` 也能解决此问题, 还能解决连分包都不能解决的情况, 并且比分包更加简单快捷。下面逐个讲解 `分包` 和 `定义接口` 这两种方法。 # 1. 应用场景 假设有如下使用场景: 1. `A` 是应用程序的框架级结构体,在 `A` 包含子模块 `B` 和 `C` 的指针; 2. `B` 为了方便的使用应用的其他子模块(比如 `C` )功能,所以在其结构体包含了 `A` 的指针; 3. `C` 要调用 `A` 包...阅读全文