本文是关于Golang的相关教程,详细解析下Go中的循环依赖检测工具——go-cyclic,下面一起来看一下。



详细解析Go中的循环依赖检测工具——go-cyclic


问题描述


使用Golang 时出现循环依赖,在编译时抛出异常。


如果有两个包:package a 和 package b,当在包a依赖包b,包b依赖包a时,就会产生循环依赖。真实情况可能会更复杂一些。例如,如包a依赖包b,包b依赖包c,包c又依赖包a时,形成一个环。


import cycle not allowed


而且,当项目很大的时候,在一个包下面有很多 .go 文件,只提示包与包的循环引用,是很难定位到哪个 .go 文件和哪个 .go 文件直接进行了循环引用,难以排查。下面,一起来看看go-cyclic 的具体用法。


go-cyclic 用法


●  github地址:github.com/elza2/go-cyclic 


●  go-cyclic 可以用来检查项目是否存在循环依赖,并且可以定位到具体的 .go 文件。帮助快速定位循环问题。


  ○  快速开始:


go install github.com/elza2/go-cyclic@latest
# path 路径要设置为 go.mod 文件所在的路径.go-cyclic gocyclic --dir .path
# success output.Success. Not circular dependence.# failed output.Failed. 1 circular dependence chains were found.┌---→    app.go┆          ↓
┆       routes.go┆          ↓
└---    handler.go


    关于循环依赖检测工具go-cyclic的详细解析就到这里,翼速应用平台内有更多相关资讯,欢迎查阅!