1.1 一文搞定开发环境的搭建¶
1. 下载安装 Go语言¶
下载地址:https://golang.google.cn/dl/
下载完成后,直接双击 msi 文件进行安装,我习惯将软件安装在我的 E 盘下的
Program Files
目录下
后面就是一路点击 Next
即可,直到出现如下界面,安装完成。
2. 配置 Goland 环境¶
学习编程语言,使用一个称心的 IDE,可以帮你省去很多麻烦。
开发 Python 项目,我习惯使用 PyCharm,因为已经习惯了 JetBrains
风格的IDE,可以替我省去很多熟悉新IDE的成本,所以这里我照样使用 JetBrains
专门为 Go语言开发的IDE:Goland
。
Goland 没有像 PyCharm 那样搞一个免费社区版,它是需要付费的。
网上的PJ教程几乎都不能用了,幸好我这里有绿色免安装的版本,对,就是那种连安装都不用安装,下载解压后就能使用的专业版本。
当你的可以正常使用 Goland 后,通过点击设置进入如下界面,创建我的项目目录,顺便设置好 GOROOT 。
创建好Project后,再点击
Files->Settings->GOPATH,添加我们的项目目录F:\Go-Player
随便点击一个go文件,就能在下图箭头处看到配置入口,点击进入配置一下 Go运行器。
按照如下指示进行配置。
去掉参数提示
设置 goproxy
可先的代理有如下(注意后面的 direct 不要删除)
https://goproxy.io
https://goproxy.cn
https://mirrors.aliyun.com/goproxy/
设置 goimports(自动格式化插件),如果 你之前 没有安装 ,会提示你点击
yes
下载安装 。
至此,环境配置完成。
在项目根目录下,创建如下三个文件夹,并在 src 目录下创建一个hello.go 的文件。
点击运行按钮,在控制台我们看到了熟悉的 Hello, World!
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 get
、go install
的时候,系统就不认识它了。
右键 我的电脑
,点击属性
再点击 高级系统设置
在弹出来的窗口点击 环境变量
点击系统环境变量点的 PATH,再点击编辑
在弹出来的窗口中,新增一条 item,内容如下,这个目录是 go.exe 所在的目录
设置完成后,可以在 cmd 窗口中,运行
go version
,如果可以正常运行说明,环境变量正确配置且已经生效。
如果执行失败,你可能需要重启电脑才能生效了噢(反正我是这样)
设置环境变量:GOPATH¶
设置完 GOROOT,还要设置 GOPATH,它会告诉 Go 你的项目是在哪个目录?
这个环境变量,你可以像 GOROOT 一样通过电脑系统的环境变量来设置,在那里设置一个默认的工作目录(这个目录你可以自己定)。
不过这种方法极不推荐,因为你不可能只有一个项目,我们每个项目都有自己的
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
现在(2021年初)再去搜索一看,发现开发者已经变成了 Google 的 Go 开发团队了。
Code Runner¶
编写完代码后,想运行这个 go 文件,通常情况下你得通过下面 VSCODE 提供的入口去运行,是比较麻烦的。
点击 create a launch.json file
就会在项目根目录下创建一个 json
文件,创建完成后,运行的边栏就变成如下模样,再点击
那个三角运行按钮,就可以运行它了。
使用这种方法,需要安装一个 dlv
,VS Code
会提示你安装它,安装完成后你会在 bin 目录下发现 dlv.exe
。
这种运行方法,虽然可行,但是操作路径还是有点长。
最符合用户使用习惯的应该是,直接有一个 运行
的按钮的,例如这样
或者通常快捷键,或者右键就有运行的选择项。
VS Code 本身不提供这样的功能,你需要安装一个叫 Code Runner
的扩展,安装后不需要重启 VS Code 就会失效。
运行 Hello World¶
以上都配置好了,就可以在 VS Code 上编写并执行代码,代码如下
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, Golang")
}
使用 Ctrl + Alt + N ,或者右键选择 Run Code
就可以执行该 go 文件。
设置环境变量: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
然后你在 OUTPUT 就能看到安装进度
安装的 exe 文件会放在 %GOPATH%/bin 下,也就是 F:\Go-Player\bin
而此的 src 目录结构是这样的
到这时环境配置完成,编写 HelloWorld,并运行查看输出,一切完成。
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