gpt4 book ai didi

scope - 在 Go 中跨包访问变量

转载 作者:IT王子 更新时间:2023-10-29 01:13:53 25 4
gpt4 key购买 nike

我在 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 可以工作。但是,通常不推荐使用子包来命名空间;包旨在用于离散的、独立的功能,因此以这种方式使用它们通常比使用它们更麻烦(例如,导入周期是绝对不可能的,因此如果您在这种布局中有两个子包需要与彼此那么你就不走运了)。

如果您发现需要使用 usertopic 作为前缀以避免名称冲突,那么也许应该将基本概念纳入其自己的包中,您可以为 user 创建一个实例,为 topic 创建一个实例?

关于scope - 在 Go 中跨包访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22735325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com