问答 / 0 / 2 / 创建于 2年前 / 更新于 2年前
情况是这样的
模块结构如下
/db/db.go: import db/drivers/mysql /db/drivers/mysql/mysql.go : import db 需要 db 里的一个 interface 约束
// mysql.go func xxx(db.XxxxInterface)
/db/db_test.go: go test 报错循环依赖
/db/db_test.go: go test
真实使用场景可能是
import db import db/drivers/mysql
那 test 及整个循环依赖的引入怎么解决呢
总不能把interface拷贝一份到drivers里吧
简单, 1.db需要import xx/mysql,那就把那段逻辑搬到xx/mysql。 2.或者单独把interface 拿出来放到另外的package,那么依赖关系就是,interface <-xx/mysql <-/db,也没有循环依赖问题了。
楼上说的对,存在循环引用十有八九是把不该放在一起东西放到一起了
我要举报该,理由是:
简单, 1.db需要import xx/mysql,那就把那段逻辑搬到xx/mysql。 2.或者单独把interface 拿出来放到另外的package,那么依赖关系就是,interface <-xx/mysql <-/db,也没有循环依赖问题了。