Go简单使用及gopath和Moudle管理

配置vscode的go开发环境,可能花了很多人不少时间,但是一旦熟悉起来,再回头来看时就会觉得简单很多,不管是配置安装还是工程目录。这一篇作为安装好vscode和go环境变量之后的第二篇可以帮助我等新手向前迈出一大步,理解了之后,在以后的使用之中可以避免大多数问题。

这一篇主要介绍两个有关联内容:gopath、module管理包的区别,以及将我们的项目放到一台新机器上编译运行的问题。

一、gopath下的包管理

在上一篇VSCode安装配置Go开发环境时,安装go开发工具包这一步很容易失败,其中介绍的第二种解决办法就是将这些包提前下载了放在指定路径之下。这个指定路径其实就是gopath下第三方包的路径。下面举例来说。

我们在程序中假如要用到一个第三包中的工具,例如"github.com/tidwall/gjson"这个包(一个解析json数据格式的包),我们就需要在程序导入这个包import "github.com/tidwall/gjson",但是这个包并不是在本地,而是在github上,因此我们需要现在终端执行go get "github.com/tidwall/gjson"命令,将这个包拉取到本地,命令执行结束之后会在gopath/src目录下看到一个github.com的目录,该目录就是存放其他包的目录,也即前面说的指定路径。

再比如这个包"go.uber.org/zap/zapcore"(一个与日志有关的包),我们要在程序中使用它里面的函数时,就要导入它import "go.uber.org/zap/zapcore",同样我们需要先把这个包使用go get命令拉到本地,这时gopath/src目录下面会有一个go.uber.org的目录,里面放的就是所有以go.uber.org开头的包。

这就是gopath的包管理:需要使用的包先以go get命令下载到本地,这些包默认都放在gopath/src目录下面,和我们的项目处在同级目录下。在导入包、编译的时候都会从src下面去查找这些包。

但是由于github或者go.uber等访问很慢的问题,基本上go get命令都会执行失败;当然如果你已经成功配置好了vscode的开发环境,并且不是通过搭梯子的方式,那么执行go get命令也不会失败的。

原因就是既然已经配置好了开发环境,那么必定已经安装好了go开发工具包,这些包同样都是放在github或者golang.org上面,和go get命令要下载的包放在同样的位置。

如果go get失败,和上一篇讲的方法一样,设置一下GOPROXY变量吧。

go env -w GOPROXY=</
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值