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

下载.png

如果GOPATH设置了多个工作区,那么查找依赖包时是以怎样的顺序进行的?

例如 a 依赖 b ,b依赖c

那么 会先查找c包,那在工作区是如何查找这个依赖包c的呢?

首先在查找依赖包的时候,总是会先查找 GOROOT目录,也就是go语言的安装目录,如果没有找到依赖的包,才到工作区去找相应的包。

在工作区中是按照设置的先后顺序来查找的,也就是会从第一个开始,依次查找,如果找到就不再继续查找,如果没有找到,就报错了。

go get 会下载代码包到src目录,但是只会下载到第一个工作区目录。

在Go语言程序中,每个包都有一个全局唯一的导入路径。导入语句中类似"github.com/xxxx/tem"的字符串对应包的导入路径。

Go语言的规范并没有定义这些字符串的具体含义或包来自哪里,它们是由构建工具来解释的。

一个导入路径代表一个目录中的一个或多个Go源文件。

除了包的导入路径,每个包还有一个包名,包名一般是短小的名字(并不要求包名是唯一的),包名在包的声明处指定。

如果多个工作区中存在导入路径相同的代码包会产生冲突吗?

不冲突,因为按顺序找到所需要的包就不往后找了。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏zhangdd.com

redis官方集群安装升级ruby2.2.7版本

配置redis官方集群,开始使用yum 默认安装ruby到gem install  redis时报错,提示需要ruby>2.2.0

10520
来自专栏海天一树

小朋友学Python Web(1):建立第一个Web项目

一、 安装PyCharm专业版 注意不要安装社区版,因为社区版没有集成Django框架,得自己安装配置,过程比较繁琐

16210
来自专栏Python

Mac OSX系统、Linux、Windows命令行教程

Mac OSX系统、Linux、Windows命令行教程 [TOC] 用你的终端做一些事情 (command line, Terminal, PowerShel...

29970
来自专栏测试驿栈

GIT_服务器与本地环境构建

很多yum源上自动安装的git版本为1.7,这里手动编译重新安装 1:安装依赖包 yum install curl-devel expat-devel gett...

17830
来自专栏子勰随笔

iMac(OS X)日常开发中各种代理设置方法汇总(shell、Android Studio、gem、npm)

27180
来自专栏运维小白

8.1 shell介绍

shell介绍 shell是一个命令解释器,提供用户和机器之间的交互 支持特定语法,比如逻辑判断、循环 每个用户都可以有自己特定的shell CentOS7默认...

199100
来自专栏安恒信息

CPU漏洞检测工具使用指南

检测工具 Windows下可以使用微软的PowerShell 脚本(SpeculationControl)或: SpecuCheck https://githu...

332100
来自专栏Laoqi's Linux运维专列

rsync 常见错误与解决方法整理

由于我们经常使用rsync进行服务器文件的同步工作,但在配置过程中,会出现很多问题,下面的错误基本上都是通过客户端返回的错误进行分析 我们都是通过错误日志查看 ...

95180
来自专栏极客慕白的成长之路

MySQL社区版安装图文教程

在MySQL官网下载社区版mysql-installer-community,此版本为免费的。

20030
来自专栏黑泽君的专栏

Eclipse重写toString()出现错误,求怎么解决?

其实是Java9和eclipse有bug冲突,但是不知道,怎么解决?先自己手写吧,以后解决了,再分享!

24510

扫码关注云+社区

领取腾讯云代金券