-
博文分类专栏
- Jquery基础教程
-
- 文章:(15)篇
- 阅读:46569
- shell命令
-
- 文章:(42)篇
- 阅读:154244
- Git教程
-
- 文章:(36)篇
- 阅读:234884
- leetCode刷题
-
- 文章:(76)篇
- 阅读:131873
-
go语言报错import cycle not allowed2018-06-24 11:13 阅读(11593) 评论(0)
一、报错描述
今天,在使用go写个简单的demo时候,报错“import cycle not allowed”,文件架构如下:
其中,main.go里面调用了 consoles/sacn_nginx_log.go中的方法,sacn_nginx_log.go调用了models/model.go中的方法,在models/model.go中,使用了sacn_nginx_log.go中的变量。
sacn_nginx_log.go中头文件为:
import ( "fmt" "ops_tools_go/models" "ops_tools_go/conf" "ops_tools_go/libs" "time" "sync" "os" "bufio" "io" "strings" "net/url" "strconv" "regexp" )
models/model.go中的头文件为:
import ( "ops_tools_go/console" "database/sql" _"github.com/go-sql-driver/mysql" "ops_tools_go/conf" )
然后就报错:
也就是说,在go语言中,如果package A依赖package B,同时 package B 依赖package A,那么就会报错“import cycle not allowed”。
二、解决方案
针对,package A依赖package B,同时 package B 依赖package A的情况,我们可以引入一个package C,来解决,让package A和package B同事依赖于package C即可。