在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)

我该如何解决从其他软件包访问appcfg全局变量的问题?这是错误的做法吗?我有一种感觉。

在这种情况下,我怎么会在声明自己的命名空间功能,所以我没有发疯具有固定其名称usertopic所有的时间。

回答:

大写的变量名导出为其他包访问,因此AppCfg会工作。但是,一般不建议使用子包进行名称间隔。软件包旨在用于离散的独立功能,因此通常比使用这种方法要麻烦得多(例如,导入周期是绝对不可能的,因此,如果在此布局中有两个子软件包需要与之通信对方,那么您就不走运了。

如果你发现你需要前缀事情user,并topic为了避免名称冲突,那么也许下面的概念应被纳入了自己的包,您可以创建它的一个实例user,一个用于topic

以上是 在Go中跨包访问变量 的全部内容, 来源链接: utcz.com/qa/418593.html

回到顶部