1.1 一文搞定开发环境的搭建

http://image.iswbm.com/20200607145423.png

1. 下载安装 Go语言

下载地址:https://golang.google.cn/dl/

http://image.iswbm.com/20200102220841.png

下载完成后,直接双击 msi 文件进行安装,我习惯将软件安装在我的 E 盘下的 Program Files 目录下

http://image.iswbm.com/20200102221555.png

后面就是一路点击 Next 即可,直到出现如下界面,安装完成。

http://image.iswbm.com/20200102221840.png

2. 配置 Goland 环境

学习编程语言,使用一个称心的 IDE,可以帮你省去很多麻烦。

开发 Python 项目,我习惯使用 PyCharm,因为已经习惯了 JetBrains 风格的IDE,可以替我省去很多熟悉新IDE的成本,所以这里我照样使用 JetBrains 专门为 Go语言开发的IDE:Goland

Goland 没有像 PyCharm 那样搞一个免费社区版,它是需要付费的。

网上的PJ教程几乎都不能用了,幸好我这里有绿色免安装的版本,对,就是那种连安装都不用安装,下载解压后就能使用的专业版本。

http://image.iswbm.com/20201117193515.png

当你的可以正常使用 Goland 后,通过点击设置进入如下界面,创建我的项目目录,顺便设置好 GOROOT 。

http://image.iswbm.com/20200102223946.png

创建好Project后,再点击 Files->Settings->GOPATH,添加我们的项目目录F:\Go-Player

http://image.iswbm.com/20200102224643.png

随便点击一个go文件,就能在下图箭头处看到配置入口,点击进入配置一下 Go运行器。

http://image.iswbm.com/20200102225750.png

按照如下指示进行配置。

http://image.iswbm.com/20200102225349.png

去掉参数提示

http://image.iswbm.com/20200127192147.png

设置 goproxy

http://image.iswbm.com/20200127192512.png

可先的代理有如下(注意后面的 direct 不要删除)

  • https://goproxy.io

  • https://goproxy.cn

  • https://mirrors.aliyun.com/goproxy/

设置 goimports(自动格式化插件),如果 你之前 没有安装 ,会提示你点击 yes 下载安装 。

http://image.iswbm.com/20200127192748.png

至此,环境配置完成。

在项目根目录下,创建如下三个文件夹,并在 src 目录下创建一个hello.go 的文件。

http://image.iswbm.com/20200102224417.png

点击运行按钮,在控制台我们看到了熟悉的 Hello, World!

http://image.iswbm.com/20200102225550.png

3. 配置 VS Code 环境

下载 VS Code

要使用 VS Code,咱首先第一步得安装它。

官网下载地址是:https://code.visualstudio.com/Download

但是在这里获取的下载链接非常的快,没有使用代理的同学,几十M的软件可能得下载一天。

那么有什么办法呢?

这里教大家一个方法:

在官网获取的下载链接是这样子:

https://az764295.vo.msecnd.net/stable/c185983a683d14c396952dd432459097bc7f757f/VSCodeUserSetup-x64-1.55.0.exe

我们看到前面的域名是az764295.vo.msecnd.net ,你只要将这个域名 vscode.cdn.azure.cn 就可以。

更换后的下载链接是这样子:

https://vscode.cdn.azure.cn/stable/c185983a683d14c396952dd432459097bc7f757f/VSCodeUserSetup-x64-1.55.0.exe

再把这个链接贴到你的下载工具(我使用的是 FDM),下载速度就飞快了。

设置环境变量:GOROOT

在下载并安装好 Go 后,需要对环境变量进行一些配置,其中最重要的就是 GOROOT。

在GO语言中表示的是 Go语言编译、工具、标准库等的安装路径,通过它可以告诉系统你的 go.exe 是放在哪里,不设置的话,你后面执行 go getgo install 的时候,系统就不认识它了。

右键 我的电脑 ,点击属性

http://image.iswbm.com/20210405094512.png

再点击 高级系统设置

http://image.iswbm.com/20210405094719.png

在弹出来的窗口点击 环境变量

http://image.iswbm.com/20210405094742.png

点击系统环境变量点的 PATH,再点击编辑

http://image.iswbm.com/20210405094931.png

在弹出来的窗口中,新增一条 item,内容如下,这个目录是 go.exe 所在的目录

http://image.iswbm.com/20210405095053.png

设置完成后,可以在 cmd 窗口中,运行 go version,如果可以正常运行说明,环境变量正确配置且已经生效。

如果执行失败,你可能需要重启电脑才能生效了噢(反正我是这样)

设置环境变量:GOPATH

设置完 GOROOT,还要设置 GOPATH,它会告诉 Go 你的项目是在哪个目录?

这个环境变量,你可以像 GOROOT 一样通过电脑系统的环境变量来设置,在那里设置一个默认的工作目录(这个目录你可以自己定)。

http://image.iswbm.com/20210405095326.png

不过这种方法极不推荐,因为你不可能只有一个项目,我们每个项目都有自己的 GOPATH。习惯的做法是可以使用 go env 命令来设置

$ go env -w GOPATH=E:\VMP-Code\Golang

如果你已经在系统的环境变量中设置了 GOPATH ,那么一定移除掉,才能使用 go env -w 去设置,否则会报如下的警告

warning: go env -w GOPATH=... does not override conflicting OS environment variable

如果你移除了还报这个错误,那可能需要你重启电脑(反正我是这样)

安装 Go 扩展

Go Extension

Go 语言的扩展插件,提供了代码运行、导航、调试等最基本的功能。

这是是一年多前(2020年初)的截图,当时的开发者还是 Microsoft

http://image.iswbm.com/20200108202934.png

现在(2021年初)再去搜索一看,发现开发者已经变成了 Google 的 Go 开发团队了。

http://image.iswbm.com/20210405113213.png

Code Runner

编写完代码后,想运行这个 go 文件,通常情况下你得通过下面 VSCODE 提供的入口去运行,是比较麻烦的。

http://image.iswbm.com/20210405113905.png

点击 create a launch.json file 就会在项目根目录下创建一个 json 文件,创建完成后,运行的边栏就变成如下模样,再点击 那个三角运行按钮,就可以运行它了。

http://image.iswbm.com/20210405114834.png

使用这种方法,需要安装一个 dlv,VS Code 会提示你安装它,安装完成后你会在 bin 目录下发现 dlv.exe

http://image.iswbm.com/20210405125424.png

这种运行方法,虽然可行,但是操作路径还是有点长。

最符合用户使用习惯的应该是,直接有一个 运行 的按钮的,例如这样

http://image.iswbm.com/20210405124543.png

或者通常快捷键,或者右键就有运行的选择项。

http://image.iswbm.com/20210405114049.png

VS Code 本身不提供这样的功能,你需要安装一个叫 Code Runner 的扩展,安装后不需要重启 VS Code 就会失效。

http://image.iswbm.com/20210405124219.png

运行 Hello World

以上都配置好了,就可以在 VS Code 上编写并执行代码,代码如下

package main

import (
    "fmt"
)


func main()  {
    fmt.Println("Hello, Golang")
}

使用 Ctrl + Alt + N ,或者右键选择 Run Code 就可以执行该 go 文件。

http://image.iswbm.com/20210405110854.png

设置环境变量:GOPROXY

由于国内的一些网络问题,导致我们无法直接拉取 go 的一些工具包,这时候就要借助大神们搭建的代理地址来下载了。

最经常使用的是代理地址是:https://goproxy.cn

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

项目目录解析

这里要说一点,GO 项目中,一般来说它的工作目录结构是这样的:

  • bin目录:包含了可执行程序,注意是可执行的,不需要解释执行。

  • pkg目录:包含了使用的包或者说库。

  • src目录:里面包含了go的代码源文件,其中仍按包的不同进行组织。

所以后面我的创建的GO工作目录,也是按照这个标准来,先说明一下。

4. 下载 Go 工具插件

创建目录 src/goland.org/x/,并进入此目录,执行命令

$ git clone https://github.com/golang/tools.git
$ git clone https://github.com/golang/lint.git

随便点开一个 go 文件,在你的右下角会提示要你安装一些工具,安装的包有些由于墙的原因,无法下载,为了保证下载顺利,可以设置一下代理。

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

然后再点击 Install All

http://image.iswbm.com/20200109210654.png

然后你在 OUTPUT 就能看到安装进度

http://image.iswbm.com/20200109211543.png

安装的 exe 文件会放在 %GOPATH%/bin 下,也就是 F:\Go-Player\bin

http://image.iswbm.com/20200109213056.png

而此的 src 目录结构是这样的

http://image.iswbm.com/20200109214117.png

到这时环境配置完成,编写 HelloWorld,并运行查看输出,一切完成。

http://image.iswbm.com/20200109154657.png
  • gopkgs:

4. 配置环境变量

当你在终端使用 go env 的时候,会打印出go 相关的所有环境变量

$ go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\wangbm\AppData\Local\go-build
set GOENV=C:\Users\wangbm\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=E:\MING-Code\GoPlayer
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\Program Files (x86)\Go-1.13.6
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\Program Files (x86)\Go-1.13.6\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config

想查看几个特定的环境变量就加在 go env 后面

$ go env GOPATH
E:\MING-Code\GoPlayer
$ go env GOROOT
D:\Program Files (x86)\Go-1.13.6
$ go env GOPROXY
https://goproxy.cn,direct

以上环境变量很多,这里仅设置下面这两个就足够了

  • 一个是GO111MODULE 设置为 on,表示使用 go modules 模式

$ go env -w GO111MODULE=on
  • 一个是开启代理,防止下载包失败(前面可能你已经设置过)

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