我有两个变量,范围package main是:
package main
var ( app Application cfg Config )
现在,由于我的应用程序的大小开始增加,因此我决定将网站的每个模块放入其自己的程序包中,就像子目录一样:
/src/github.com/Adel92/Sophie + user/ (package user) - register.go - login.go - password.go + topic/ (package topic) - ... etc - main.go (package main)
我该如何解决从其他软件包访问app和cfg全局变量的问题?这是错误的做法吗?我有一种感觉。
app
cfg
在这种情况下,我怎么会在声明自己的命名空间功能,所以我没有发疯具有固定其名称user和topic所有的时间。
user
topic
大写的变量名导出为其他包访问,因此App并Cfg会工作。但是,一般不建议使用子包进行名称间隔。软件包旨在用于离散的独立功能,因此通常比使用这种方法要麻烦得多(例如,导入周期是绝对不可能的,因此,如果在此布局中有两个子软件包需要与之通信对方,那么您就不走运了。
App
Cfg
如果你发现你需要前缀事情user,并topic为了避免名称冲突,那么也许下面的概念应被纳入了自己的包,您可以创建它的一个实例user,一个用于topic?