Go一定要理解的环境概念

输入go env会出现一系列GO相关的环境变量,其中几个重要的

go env
GOPATH=d:\go
GOROOT=f:\go
GO111MODULE=on

GOROOT

GOROOT就是我们Go语言的安装路径。我这里是 GOROOT=f:\go
打开这个文件夹,可以看到

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述

src, bin, pkg三个文件夹,
标准的Go语言代码库中包含了大量的包,并且在安装 Go 的时候多数会自动安装到系统中。我们可以在

$GOROOT/src
$GOROOT/pkg

目录中查看这些包。当我们 import内置包的时候,并不需要额外安装,当程序运行时,会先去GOROOT下找相应的包来运行。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述
在这里插入图片描述

GOPATH

GOPATH 是 Go语言中使用的一个环境变量,它使用绝对路径提供项目的工作目录

工作目录:一个工程开发的相对参考目录工作区的概念与工作目录的概念也是类似的。如果不使用工作目录的概念,在多人开发时,每个人有一套自己的目录结构,读取配置文件的位置不统一,输出的二进制运行文件也不统一,这样会导致开发的标准不统一,影响开发效率

对于多项目来说,需要设置多个GOPATH来满足需求

1、 当执行golang程序,需要获取import的包时,编译器回先去GOROOT路径下的src文件夹找有没有我们在程序中import的包
2、如果在GOROOT下没有找到,就会去GOPATH下src下找这个包

所以只要GOROOT跟GOPATH下都没找到包的话就会报错

使用GOPATH的工程结构

在 GOPATH 指定的工作目录下,代码总是会保存在 $GOPATH/src 目录下。在工程经过 go buildgo installgo get 等指令后,会将产生的二进制可执行文件放在 $GOPATH/bin目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg 下。

如果需要将整个源码添加到版本管理工具(Version Control System,VCS)中时,只需要添加 $GOPATH/src 目录的源码即可。bin 和 pkg 目录的内容都可以由 src 目录生成。

gopath缺陷

GOPATH 很大的缺点,就是相关第三方包只要不是官方库,都需要放置在GOPATH/src的路径下才可使用。通常我们会使用go get指令来获取网络上的第三方包,并安装到本地。而且还缺少版本管理

GO Module

这个需要独立出来成一篇文章

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值