合并两个包或尝试解决Go lang中的循环依赖

时间:2015-07-18 23:49:51

标签: rest go

我正在创建一个REST API,我已经将每个资源分成了它自己的包。我有一个User和一个Group包。这两种资源之间存在着多对多的关系。因此,我需要User导入导入Group的{​​{1}}和Group。因为两个结构都需要它们作为字段。

我的问题是,我应该创建另一个包并导入两个包然后将该包导入这些包中吗?

或者将这两个包合并为go lang更合理吗?

2 个答案:

答案 0 :(得分:4)

将它们放在同一个包中,但将它们留在不同的文件中。

答案 1 :(得分:0)

我在同样情况下所做的是:

我将结构单独放入一个单独的包models,其中包含userModel.gogroupModel.go的结构,并保留了与user和{相关的功能{1}}在他们自己的包中。

groupuser个软件包都包含group个软件包。

然而,这是一个非常自以为是的答案。作为model,我们也可以将所有内容放在一起。决定因素应该是,Joshua's post saysuser功能是否会在其他包中使用。如果是这样,那么保留模型包将有其好处。