一、物料

李文周-博客
路飞学城

二、Go语言开发环境搭建

Windows下安装

  • 安装Go开发包
  • 下载地址

Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
image.png
image.png

  • 新打开一个cmd -> go version查看版本。

Linux下安装

如果不是要在Linux平台敲go代码(开发)就不需要在Linux平台安装Go,我们开发机上写好的go代码只需要跨平台**编译**(详见文章末尾的跨平台编译)好之后就可以拷贝到Linux服务器上运行了,这也是go程序跨平台易部署的优势。

我们在版本选择页面选择并下载好go1.14.1.linux-amd64.tar.gz文件:

  1. wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz

将下载好的文件解压到/usr/local目录下:

  1. tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local # 解压

如果提示没有权限,加上sudo以root用户的身份再运行。执行完就可以在/usr/local/下看到go目录了。

配置环境变量: Linux下有两个文件可以配置环境变量,其中/etc/profile是对所有用户生效的;$HOME/.profile是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。

  1. export GOROOT=/usr/local/go
  2. export PATH=$PATH:$GOROOT/bin

修改/etc/profile后要重启生效,修改$HOME/.profile后使用source命令加载$HOME/.profile文件即可生效。 检查:

  1. ~ go version
  2. go version go1.14.1 linux/amd64

Mac下安装

  • 下载可执行文件版,直接点击下一步安装即可,默认会将go安装到/usr/local/go目录下。
  • 上一步安装过程执行完毕后,可以打开终端窗口,输入go version命令,查看安装的Go版本。

Goland for Mac破解地址 。 或者https://www.waitsun.com/
goland安装更改默认shell
拉取的代码问题:
例如iris的热重启模块rizla不能正常工作,是因为没有使用go get,并没有在 bin目录 生成可执行文件,所以报不是内部或外部命令。

  1. //编辑~/.bash_profile文件
  2. $ vim ~/.bash_profile
  3. // e进入编辑,i表示insertesc > :wq!
  4. //在~/.bash_profile文件中添加以下2条命令
  5. export GOROOT=/usr/local/go
  6. export PATH=$PATH:$GOROOT/bin
  7. //使配置生效
  8. $ sorce ~/.bash_profile

三、配置GOPATH

新建目录 E:/Go存放编写Go代码(即源代码)-如果有多个,就以分号分隔添加

首先新建3个文件夹:
image.png

为什么要三个文件夹?或者说开发时的目录结构是什么样的?

GOPATH之下主要包含三个⽬目录: bin、pkg、src。bin⽬目录主要存放可执⾏文件; pkg⽬目录存放编译好的库⽂文件, 主要是*.a⽂文件; src⽬目录下主要存放go的源文件

  • 个人开发

image.png

  • 团队开发

image.png

  • 企业开发者

image.png

默认配置

GOROOTGOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录,参见下表。
GOPATH在不同操作系统平台上的默认值

平台 GOPATH默认值 举例
Windows %USERPROFILE%/go C:\Users\用户名\go
Unix $HOME/go /home/用户名/go

可以通过以下方法查看默认的GOPATH目录:
image.png
默认情况下 GOROOT下的bin目录及GOPATH下的bin目录都已添加到环境变量 PATH 中了,不需要额外配置。
只需要记住更改的GOPATH路径,以后在这个目录下开发go项目。

具体配置

  1. 删除用户变量和系统变量默认的GOPATH和path内的bin路径(默认的)
  2. 在系统变量设置 GOPATH=E:/Go和GORROT=C:/Go 表示安装环境;在PATH内添加C:/Go/bin 和 %GOPATH%\bin【可能有多个GOPATH】

image.png

四、go env内的属性

4.1 GOPROXY

Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到[https://proxy.golang.org](https://proxy.golang.org),所以我们需要换一个PROXY,这里推荐使用[https://goproxy.io](https://goproxy.io)[https://goproxy.cn](https://goproxy.cn)

当你安装的GO的语言版本大于1.13的时候,那么就不用这么麻烦了,直接使用go env -w命令就行了
可以执行下面的命令修改GOPROXY:

  1. go env -w GOPROXY=https://goproxy.cn,direct
  2. go env -w GO111MODULE=off


4.2 GO111MODULE

GO111MODULE有三个值:off, on和auto(默认值)。

  • GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
  • GO111MODULE=on,go命令行会使用Module机制,而一点也不会去GOPATH目录和Vendor下查找。
  • GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
    • 在GOPATH下的工程,不使用Module机制,不在GOPATH下的工程使用
    • 当前目录在GOPATH/src之外且该目录包含go.mod文件
    • 当前文件在包含go.mod文件的目录下面。

4.3 报错

  1. # GOPATH entry is relative; must be absolute path: "%USERPROFILE%\\go".
  2. - 用户环境变量中Path添加了错误的"%USERPROFILE%\\go"路径
  3. - 或者是Path改用文本编辑去掉末尾分号并重启
  4. # GO111MODULE=on,但是没有go.mod文件
  5. go: cannot find main module; see 'go help modules'
  6. # tools版本和golang版本不统一:重新安装Go语言开发工具包
  7. compile: version "go1.14.4" does not match go tool version "go1.13"
  8. go get github.com/golang/protobuf/protoc-gen-go@v1.3.2 # 安装第三方依赖报错
  9. go: cannot use path@version syntax in GOPATH mode
  10. # 解决:需要开启 GO111MODULE,默认是 auto
  11. # go mod作为官方的依赖管理工具,类似于maven这种本地缓存库的管理方式,其主要是通过GOPATH/pkg/mod下的缓存包来对工程进行构建。
  12. #####
  13. 总结: 获取第三方依赖时(下载到GOPATH/pkg中)
  14. # go get -u -v 获取包
  15. go get github.com/kataras/iris/v12@latest
  16. # 先使用`go env -w GO111MODULE=on`下面打开GO111MODULE选项
  17. # 使用完最好关闭,否则编译可能出错(不关闭走Module机制)
  18. #####

五、编辑器

Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用VS CodeGoland
由于Goland是jetbrains出品的付费IDE,破解版不利于在公司使用。推荐使用VS Code 加插件 Go 做为go语言的开发工具。

安装Go语言开发工具包

在做Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。
在此之前请先设置GOPROXY,打开终端执行以下命令:

  1. go env -w GOPROXY=https://goproxy.cn,direct
  • 首先安装扩展go
  • Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P,这个时候VS Code界面会弹出一个输入框。

我们在这个输入框中输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令,按下图选中并会回车执行该命令(或者使用鼠标点击该命令):
image.png
image.png
image.png

若安装失败(国外资源),则下载网盘。复制到开发目录下的bin文件夹:

https://pan.baidu.com/s/1Evs8r7fkHbDSl9Qrxbm-ew 密码:vjx2。

其他系统安装教程:
农科院CSDN简书哔哩哔哩

代码格式化-配置代码片段快捷键

还是按Ctrl/Command+Shift+P,按下图输入>snippets,选择命令并执行
在弹出的窗口点击选择go选项,配置go.json文件

  • 大家可以简单看下上面的注释,介绍了主要用法:

    1. “这里放个名字”:{
    2. "prefix": "这个是快捷键",
    3. "body": "这里是按快捷键插入的代码片段",
    4. "description": "这里放提示信息的描述"
    5. }
  • 其中$0表示最终光标提留的位置。 举个例子,我这里创建了两个快捷方式,一个是输入pln就会在编辑器中插入fmt.Println()代码;输入plf,就会插入fmt.Printf("")代码。

    1. {
    2. "println":{
    3. "prefix": "pln",
    4. "body":"fmt.Println($0)",
    5. "description": "println"
    6. },
    7. "printf":{
    8. "prefix": "plf",
    9. "body": "fmt.Printf(\"$0\")",
    10. "description": "printf"
    11. }
    12. }
  • 把上面的代码,按下图方式粘贴到配置文件中,保存并关闭配置文件即可。

image.png

破解goland

Tencent