go - 文件专用的全局变量

标签 go global-variables

在 GOLANG 中,有没有办法使变量的范围对包内的文件是本地的? 就我而言,有 2 个文件 ex1.go 和 ex02.go。 ex01.go 定义了一个全局变量

var wg sync.WaitGroup

在该文件中的函数中使用。

在另一个文件 ex02.go 中(除了 ex01.go 和 ex02.go 都属于同一类问题 - 即并发之外,它与 ex01.go 没有关系),我无法将 waitGroup 的变量定义为

var wg sync.WaitGroup

我收到一个错误 - “变量名在此 block 中重新声明”

有没有办法防止变量名溢出到其他文件?

最佳答案

出于变量作用域的目的,文件在 Go 中没有意义。将包中的所有文件视为将它们连接起来,这(简化)正是在编译之前发生的事情。

这意味着:不,没有办法将变量范围限定为文件。

如果您需要两个全局 WaitGroup,则需要将它们定义为单独的变量。

关于go - 文件专用的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45253939/

相关文章:

unit-testing - 是否可以对我的包不导入特定包进行单元测试?

parsing - 使用 Go 解析 Go 时间戳

golang : can't execute t. 执行

go - 使用 oklog/run 的 Go 编译器出现错误 "(no value) used as value"

ruby-on-rails - 一旦浏览器关闭,销毁全局变量或将其设置为 nil

go - 在 GVM 中使用 Go 1.2 覆盖工具

java - 在不同的 Controller 中使用一个对象

改变全局变量的值,C

javascript - Backbone.js 共享上下文模型

javascript - 如果渲染器进程关闭, Electron 全局变量垃圾会被收集吗?