学习Go语言-GOPATH有多工作区的问题

时间:2021-9-6     作者:smarteng     分类: 编程



如果GOPATH设置了多个工作区,那么查找依赖包时是以怎样的顺序进行的?
例如 a 依赖 b ,b依赖c
那么 会先查找c包,那在工作区是如何查找这个依赖包c的呢?
首先在查找依赖包的时候,总是会先查找 GOROOT目录,也就是go语言的安装目录,如果没有找到依赖的包,才到工作区去找相应的包。
在工作区中是按照设置的先后顺序来查找的,也就是会从第一个开始,依次查找,如果找到就不再继续查找,如果没有找到,就报错了。
go get 会下载代码包到src目录,但是只会下载到第一个工作区目录。
在Go语言程序中,每个包都有一个全局唯一的导入路径。导入语句中类似"github.com/xxxx/tem"的字符串对应包的导入路径。
Go语言的规范并没有定义这些字符串的具体含义或包来自哪里,它们是由构建工具来解释的。
一个导入路径代表一个目录中的一个或多个Go源文件。
除了包的导入路径,每个包还有一个包名,包名一般是短小的名字(并不要求包名是唯一的),包名在包的声明处指定。
如果多个工作区中存在导入路径相同的代码包会产生冲突吗?
不冲突,因为按顺序找到所需要的包就不往后找了。


现在根本就不用工作区了,而且在最新版本里面去掉了go path 变量了

让我们拥抱 go module吧

标签: golang gomod