猿问

Go:在此块中重新声明“实例”

我有这两个文件:


daoFactory.go


package dao


import "sync"


type daoFactory struct {}


var instance *daoFactory


//some functions

假ProvisionDao.go


package dao


import (

    "sync"

    "model"

)


type provisionDao struct {

}


var instance *provisionDao


//some functions

两者都在同一个包中:dao.


我收到此错误:


在此块中重新声明的“实例”


显然,原因是instance在两个文件中都声明了变量。我正在开始 Go 编程,但我不知道我应该如何处理这个错误。


蝴蝶刀刀
浏览 214回答 1
1回答

潇湘沐

文件对 go 没有真正的意义,与 java、python 和许多其他文件不同,它们只是让你按照你认为合适的方式组织代码。在 go 中变量是可见的package,这意味着 的两个声明instance都是具有包范围可见性的变量。因此编译器抱怨有两个同名的全局变量。重命名两个实例变量中的任何一个,它就会编译。强烈建议阅读以上评论中的链接;-)
随时随地看视频慕课网APP

相关分类

Go
我要回答