为了账号安全,请及时绑定邮箱和手机立即绑定

在 Go 中跨包访问变量

在 Go 中跨包访问变量

Go
临摹微笑 2021-07-30 21:15:26
我在 的范围内有两个变量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所有的时间。
查看完整描述

1 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

大写的变量名导出为其他包访问,因此AppCfg会工作。但是,通常不建议使用子包进行名称间距;包用于离散的、自包含的功能,因此以这种方式使用它们通常比使用它们更麻烦(例如,导入循环是绝对不可能的,因此如果您在此布局中有两个子包需要与之交谈彼此然后你就不走运了)。

如果你发现你需要用userand前缀topic来避免名称冲突,那么也许底层概念应该被考虑到它自己的包中,你可以创建它的一个实例 foruser和一个 for topic


查看完整回答
反对 回复 2021-08-02
  • 1 回答
  • 0 关注
  • 435 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信