gpt4 book ai didi

Golang 从不同包中的另一个 gloang 文件中删除对访问方法的循环依赖

转载 作者:IT王子 更新时间:2023-10-29 01:47:13 32 4
gpt4 key购买 nike

我有一个 A.go 文件,方法如下。

func pInfoEx(reqCtx B.RequestContext) {
fmt.Println(reqCtx.p);
}

对于 pInfoEx 函数中的这个 RequestContext 参数,我必须导入另一个包中的 B.go 文件。

type RequestContext interface {
p() string
}

但是 B.go 导入了 C.go ,而 C.go 又导入了 A.go 造成了循环依赖。如何在不将 go 文件移动到同一个包的情况下解决这种循环依赖?

我已经经历了Cyclic dependencies and interfaces in Golang发布,但这里的方法有一个不能更改的参数。

最佳答案

一种方法是将所有数据类型和接口(interface)定义移动到单独的包中,因此所有内容都将依赖于它,但包不依赖于任何其他包。这可以是项目根文件夹中的特殊包 schema。甚至顶级项目本身。

关于Golang 从不同包中的另一个 gloang 文件中删除对访问方法的循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47479475/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com