工作区和GOPATH

GOROOT:Go 语言安装根目录的路径,也就是 GO 语言的安装路径。

GOPATH:若干工作区目录的路径。是我们自己定义的工作空间。

GOBIN:GO 程序生成的可执行文件(executable file)的路径

设置 GOPATH 有什么意义吗?

可以把 GOPATH 简单理解成 Go 语言的工作目录,它的值是一个目录的路径,也可以是 多个目录路径,每个目录都代表 Go 语言的一个工作区(workspace)。

工作区放置 Go 语言的源码文件(source file),以及安装 (install)后的归档文件(archive file,“.a”  .exe)和可执行文件 (executable file)。每个工作区都会有src、pkg、bin三个文件夹。

go包

        Go 语言的源码以代码包为基本组织单位。在文件系统中,代码包与目录一一对应。由于目录可以有子目录,所以代码包也可以有子包。 一个代码包中可以包含任意个以.go 为扩展名的源码文件,这些源码文件都需要被声明属于同一个代码包。 代码包的名称一般会与源码文件所在的目录同名。如果不同名,那么在构建、安装的过程中会以代码包名称为准。

        每个代码包都会有导入路径。代码包的导入路径是其他代码在使用该包中的程序实体时,需 要引入的路径。在实际使用程序实体之前,我们必须先导入其所在的代码包。工作区中,一个代码包的导入路径实际上就是从 src 子目录,到该包的实际存储位置的相 对路径。

        Go 语言源码的组织方式就是以环境变量 GOPATH、工作区、src 目录和代码包为 主线的。一般情况下,Go 语言的源码文件都需要被存放在环境变量 GOPATH 包含的某个 工作区(目录)中的 src 目录下的某个代码包(目录)中。

go设置国内代理

go env -w GOPROXY=https://goproxy.cn

goget弃用

1.17.1版本之后,go get 命令便不能再用了,全部改为go install 命令。

“go install pkg@version”代替
go install  github.com/go-sql-driver/mysql@latest
go install  github.com/jmoiron/sqlx@latest

gobuild

1. 运行go build命令时加入标记-x,这样可以看到go build命令具体都执行了哪些操作。另外也可以加入标记-n,这样可以只查看具体操作而不执行它们。

2. 运行go build命令时加入标记-v,这样可以看到go build命令编译的代码包的名称。 它在与-a标记搭配使用时很有用。

1. Go 语言在多个工作区中查找依赖包的时候是以怎样的顺序进行的?

如 a 依赖 b ,b依赖c,会先查找c包,

在查找依赖包的时候,会先查找 GOROOT目录,如果没有找到依赖的包,才到工作区去找相应的包。在工作区中按照设置的先后顺序来查找的,也从第一个开始,依次查找,如果找到就不再继续查找,如果没有找到,就报错。go get 会下载代码包到src目录,但是只会下载到第一个工作区目录。在Go语言程序中,每个包都有一个全局唯一的导入路径。导入语句中类似"github.com/xxxx/tem"的字符串对应包的导入路径。Go语言的规范并没有定义这些字符串的具体含义或包来自哪里,它们是由构建工具来解释的。

一个导入路径代表一个目录中的一个或多个Go源文件。除了包的导入路径,每个包还有一个包名,包名一般是短小的名字(并不要求包名是唯一的),包名在包的声明处指定。
 

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃瓜太狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值