我有这两个文件:
daoFactory.go
package dao
import "sync"
type daoFactory struct {}
var instance *daoFactory
//some functions
fakeProvisionDao.go
package dao
import (
"sync"
"model"
)
type provisionDao struct {
}
var instance *provisionDao
//some functions
两者都在同一个包中:dao
。
我收到这个错误:
"instance" redeclared in this block
很明显,原因是 instance
变量在两个文件中都被声明了。我刚开始学习 Go 编程,我不知道该如何处理这个错误。
最佳答案
文件对于 go 没有实际意义,与 java、python 和许多其他语言不同,它们只是让您按照自己认为合适的方式组织代码。
在 go 中,变量在 package
范围内可见,这意味着 instance
的两个声明都是在包范围内可见的变量。因此,编译器会提示有两个同名的全局变量。
重命名两个实例变量中的任何一个,它将编译。
强烈推荐阅读上面评论中的链接 ;-)
关于Go: "instance"在此 block 中重新声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34344172/