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

Héc*_*tor 6 go

我有这两个文件:

daoFactory.go

package dao

import "sync"

type daoFactory struct {}

var instance *daoFactory

//some functions
Run Code Online (Sandbox Code Playgroud)

fakeProvisionDao.go

package dao

import (
    "sync"
    "model"
)

type provisionDao struct {
}

var instance *provisionDao

//some functions
Run Code Online (Sandbox Code Playgroud)

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

我收到此错误:

"实例"在这个区块重新宣布

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

tik*_*ike 16

文件没有真正的意义,不像java,python和许多其他文件,它们只是为了您按照自己的意愿组织代码.

在go中,变量是可见的package,这意味着两个声明instance都是具有包广泛可见性的变量.因此编译器抱怨有两个具有相同名称的全局变量.

重命名两个实例变量中的任何一个,它将进行编译.

阅读以上评论中的链接是强烈建议;-)