dep:处理 Golang 中的依赖循环
深度
处理 Golang 中的依赖循环
Go 不允许发生导入循环。 如果检测到任何导入循环,则会引发编译时错误。 通常导入周期被认为是一个糟糕的设计。
当包“a”依赖于“b”而“b”又依赖于“a”时,会导致导入循环。 下面的 Go 代码说明了导入循环的经典问题,也就是依赖循环。
package a
import (
"fmt"
"github.com/mantishK/dep/b"
)
type A struct {
}
func ( a A ) PrintA () {
fmt . Println ( a )
}
func NewA () * A {
a := new ( A )
return a
}
func RequireB () {
o := b . NewB ()
o . PrintB ()
}
package b
import (
"fmt