我有这两个文件:
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
变量。我正在开始编程,我不知道应该如何处理这个错误。
答案 0 :(得分:12)
文件对go没有实际意义,不像java,python和其他许多文件,它们只是让你按照自己的意愿组织代码。
在go变量可见package
宽,这意味着instance
的两个声明都是包广泛可见的变量。因此编译器抱怨有两个具有相同名称的全局变量。
重命名两个实例变量中的任何一个,它将进行编译。
强烈建议阅读上述评论中的链接; - )