一、Go环境搭建
1. Go环境下载与安装
A. Go语言安装包下载
Go语言安装包下载页面网址:https://golang.google.cn/dl/,其页面如下
(如果上述网站打不开或者开启缓慢,也可以使用Go语言中文网的下载地址:https://studygolang.com/dl)
请大家按照各自电脑去选择对应的安装包,我这里选择的是最新的Windows的安装包,因为Go语言从1.18版本开始,支持泛型,并在1.19版本进行了优化;如果由需要的小伙伴们,可以在下方去选择历史稳定版本的Go语言,但是建议版本在1.13以上
B. Go语言Windows安装
下载好Go语言安装包后,双击点开,除了选择一个自己的喜欢的安装位置外,一直next即可,对应环境变量的配置将在第二节详细讲解
验证Go语言安装成功的方法也很简单,只需要在命令提示行,去查看对应Go的版本即可
go version
结果如下图所示
C. IDE配置
我这里选择了Jet brain专门为Go开发而准备的IDE——Goland,当然也有很多人选择了IDEA+GO插件来进行开发,这种大家可以自行百度来配置
Goland的配置,在建立工程的时候,如下图所示,按图选择好后,直接create即可
此外,针对于控制台打印,为了便于查看打印内容,我们需要隐藏一部分的内容,这里我们可以进行如下设置:
首先双击Shift键(或者Ctrl+Shift+A),调出快速搜索框,选择Action选项卡,输入Registry,如下图所示
点击黄色位置,在弹出的对话框中,向下滑动,找到go.run.process.with.pty这个属性,然后取消勾选,就可以啦,如下图所示
2. Go环境配置与依赖管理
通过如下命令可以查看已安装的Go语言的一些配置
go env
其中比较重要的配置就是如下几个:GOPROXY(用于拉取标准库和第三方库的地址),GOROOT(Go语言的本地安装目录), GO111MODULES(GO MOD开关),
A. Go镜像依赖管理及环境变量配置
go env —w GO111MODULES=on // 注意这里要小写,不是大写ON,也不是1或者true等
/* 特定场景小需要关闭或开启某些设定*/
SET GO111MODULES=off // Mac为export
/* 镜像配置(可以访问下面的网址去看看) */
go env —w GOPROXY=https:// goproxy.cn,direct
B. goimports(依赖包管理工具)安装
go install golang.org/x/tools/cmd/goimports@latest
这里我们在IDE中去进行配置,如下图所示
C. Go依赖管理
Go语言的依赖管理,经历了三个阶段,分别为GOPATH,GOVENDOR和go mod
-
GOPATH
- GOPATH:是一种环境配置,默认值在~/go(unix,linux),%USERPROFILE%\go(Windows);管理方式:所有的依赖默认来这个环境变量下的文件夹内寻找,这样会造成,所有的项目都放到了GOPATH的目录下面,会越来越大(尤其是第三方库等等),而且,在GOPATH主目录下会存在版本兼容性问题
- GOPATH还存在特定的文件目录结构:在GOPATH目录下建立子文件夹src,用于存放代码文件;在src下代码文件下新建子文件夹vendor(/src/project/vender),用于存放项目见不同版本的一些依赖;
-
GOVENDOR
- 每个项目都有自己的vendor目录,存放第三方库;同时存在一些三方依赖管理工具,通过配置三方工具的配置文件,来管理依赖的下载和存储
-
GO MOD
- 由GO命令统一进行管理,不必关心目录结构
- GO MOD可以直接拉取相对应的依赖,并在依赖完成后,在文件目录go.mod中生成对应的require,且在每一条依赖的后面注释一个indirect,该注释会在相对应依赖被使用后,自动消除
- 生成一个新的文件go.sum,其中写明所有拉取过程中得到的库及其版本
go mod tidy // 此命令用于清洁go.sum中依赖换版本后,不在使用的依赖
- GO MOD在拉取库依赖时,如果库本事支持GO MOD,那么就会显示明确版本,如v1.0.3,否则则是对应最新版本,但显示为如:v0.0.0-{{TimeStamp}}-{{Hash}}这种形式,会存在go目录下pkg文件夹下
-
项目迁移入GO MOD中进行管理
- GoLand中会自动提示去帮助我们来管理我们的依赖(此种一般仅处理当前目录下的项目依赖)
go mod init + module名称 // 给就项目添加mod管理 go build ./... // 可以一次性将目录下所有的项目的依赖 go get xxx // 用于添加依赖
- 当完成了项目迁移后,可以将GOVENDEOR残留下的vendor文件夹及第三方配置文件,如glide.yaml一并删除
D. GO目录整理
因为GO语言本身build命令,只允许一个目录下存在一个main函数,所以,所有存在main函数的go文件,需要单独放在一个独立的文件夹下面,而不能一起放到同一个根目录下
本文至此便告一段落,祝各位码上无ERROR,键盘无BUG!!