出错背景
最近在写一个项目,是属于两个人合写的,一个人写一个包,最后合并在一起。
但是,最后在 main.go
中,需要应用到某个函数时,发现不能引用,报错:
报错:Use of internal package is not allowed
如下图所示:
寻找原因
一开始,以为是 GOPATH
的问题,因为看字面意思,我们很容易想到是内部函数出了问题。
但是,仔细想想,这个也不是内部函数啊。理所当然的,把这个项目放到 GOPATH/src
下运行,也不会有什么改变,一样报错。
真正的原因
最后,发现了真正的原因:命名错误!!!
我在项目下,命名了一个包,叫 internal
,这不是作死嘛。
internal
是内部的意思,Go 编译器就会当成是内部函数了。
当我们改变了这个包的名字时,一切都好了。