在Go中跨包访问变量
我有两个变量,范围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
全局变量的问题?这是错误的做法吗?我有一种感觉。
在这种情况下,我怎么会在声明自己的命名空间功能,所以我没有发疯具有固定其名称user
和topic
所有的时间。
回答:
大写的变量名导出为其他包访问,因此App
并Cfg
会工作。但是,一般不建议使用子包进行名称间隔。软件包旨在用于离散的独立功能,因此通常比使用这种方法要麻烦得多(例如,导入周期是绝对不可能的,因此,如果在此布局中有两个子软件包需要与之通信对方,那么您就不走运了。
如果你发现你需要前缀事情user
,并topic
为了避免名称冲突,那么也许下面的概念应被纳入了自己的包,您可以创建它的一个实例user
,一个用于topic
?
以上是 在Go中跨包访问变量 的全部内容, 来源链接: utcz.com/qa/418593.html