dev*_*k23 12 global-variables go
在GOLANG中,有没有办法让变量的范围在包中的文件本地?就我而言,有两个文件ex1.go和ex02.go. ex01.go定义了一个全局变量
var wg sync.WaitGroup
Run Code Online (Sandbox Code Playgroud)
用于该文件中的各个函数.
在另一个文件ex02.go(与ex01.go无关,除了ex01.go和ex02.go都属于同一类问题 - 即并发),我无法为waitGroup定义一个变量
var wg sync.WaitGroup
Run Code Online (Sandbox Code Playgroud)
我收到一个错误 - "在此块中重新声明变量名称"
有没有办法让变量名称不会溢出到其他文件?
Mar*_*erg 20
出于变量作用域的目的,文件在Go中没有意义.将包中的所有文件想象为它们将被连接起来,这些(简化)正是在编译之前发生的事情.
这意味着:不,没有办法将变量作用于文件.
如果需要两个全局WaitGroups,则需要将它们定义为单个变量.
只有显式导入的标识符才具有文件范围.在你定义的文件wg.go中说
package wg
var Wg sync.WaitGroup
// and all staff common to class of problems - i.e. concurrency
Run Code Online (Sandbox Code Playgroud)
然后你可以在文件ex1.go
import wg
wg.Wg.Add(1) //use locally to file
Run Code Online (Sandbox Code Playgroud)
同样在ex2.go
| 归档时间: |
|
| 查看次数: |
7548 次 |
| 最近记录: |