去:"实例"在这个街区重新宣布

时间:2015-12-17 21:02:15

标签: go

我有这两个文件:

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变量。我正在开始编程,我不知道应该如何处理这个错误。

1 个答案:

答案 0 :(得分:12)

文件对go没有实际意义,不像java,python和其他许多文件,它们只是让你按照自己的意愿组织代码。

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

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

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