在GOLANG中,有没有办法使变量的作用域对于包中的文件是局部的? 在我的示例中,有两个文件ex1.go和ex02.go.ex01.go定义全局变量

var wg sync.WaitGroup

它在该文件中的函数之间使用.

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

var wg sync.WaitGroup

我得到一个错误——"变量名在此块中重新声明"

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

推荐答案

就变量范围而言,文件在Go中没有任何意义.把一个包中的所有文件都看作是连接在一起的,这(简化)正是编译之前发生的事情.

这意味着:不,没有办法将变量限定为文件的作用域.

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

Go相关问答推荐

向路由发送获取请求时Golang中出现404错误

Go -SDP服务器读缓冲区不会更改任何内容

获取k8s群集作用域运算符的命名空间

Go PQ驱动程序无法使用默认架构进行查询

ChromeDriver不存在(高朗selenium)

Go Regexp:匹配完整的单词或子字符串,或者根本不匹配

你能把用户界面文件中的GTK4应用程序窗口添加到GTK4应用程序中吗?

如何解析Go-Gin多部分请求中的 struct 切片

如何根据地址和大小打印字符串

如何在 Go 服务中导入 monorepo 中的包?

在本地 go 应用程序上获取秘密的正确策略

加密/椭圆:try 在无效点上进行操作

设置 graphql 的最大文件上传大小(golang)

Golang 中具体类型的错误片段

在嵌套模板中使用变量,它也被定义为 go 模板中的变量?

在 Go 中公开公共 JWK

如何使用 Go 代理状态为 OK 的预检请求?

正确编码 JWT

gqlgen go,通过添加一个解析器来减少数据库调用

Go 错误:Is() 和 As() 声称是递归的,是否有任何类型实现错误接口并支持这种递归 - 无错误?