Go语言的搜索路径

 Go语言在使用中,大家都绕不开搜索路径这个概念。简单来说,Go语言的搜索路径分如下几种。

1 引用系统自带的各种package

 不用管搜索路径,会自动去加载。

2 完全自包含项目

 如果项目里面只存在package main,那么就会在本路径搜索。

3 引用了其它的包

 会按如下的顺序进行搜索,如果搜索了就会停止。

3.1 搜索当前路径的vendor目录
3.2 搜索上一级目录里面的vendor目录
3.3 一直往上搜索到$GOPATH/src里面的vendor目录
3.4 搜索$GOPATH/src的路径

 如果存在多个$GOPATH,会从前到后一个一个搜索,找到就停止了。注意不会在当前路径开始搜索。

 因为上面的搜索顺序中,搜索到包就会停止,所以如果vendor里面存在包,但是不存在某函数,即使$GOPATH存在同样的包并且包含函数,也会报错找不到定义的函数,因为搜索到包就结束了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容