因为还在学习中,因此只记录我自己开发环境(windows10)的准备过程。
搭建GO语言开发环境
1. 安装GO语言工具
下载地址:
Go官网下载地址(打开失败):https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
1)下载并安装了Windows下的最新版本(go1.16.1)。
2)双击安装媒体进行安装,选了一个好找的安装路径,一路【next】。
3)安装完成后,打开终端窗口,执行go version
命令,确认安装的GO版本。
C:\WINDOWS\system32>go version
go version go1.16.1 windows/amd64
2. 环境变量配置(GOROOT和GOPATH)
-
GOROOT: GO的安装路径。
和其他语言的开发工具一样,GO语言工具安装完成后,会把%GOROOT%\bin
追加到系统环境变量path
中,因此执行go工具的命令时,可以不用关心当前打开路径。 -
GOPATH: GO工具中(go install/go get等)会使用的一个环境变量,它使用绝对路径提供项目的工作目录。
媒体安装时,会做成同名用户系统变量
,其默认值为%USERPROFILE%/go
(例:C:\Users\Admin\go)。
我们也可以根据自己的编码习惯,创建工作目录(如下),并修改环境变量。
注意:不要把GOPATH设置成go的安装路径
mkdir mygo // 创建工作目录,例如:e:\mygo
cd mygo // mygo 进入工作目录 ,并创建src、pkg、bin子目录
mkdir src // ├ src 以代码包的形式组织并保存Go源码文件
mkdir pkg // ├ pkg 用于在构建安装后,保存Go语言标准库的所有归档文件。
mkdir bin // └ bin 存放所有由官方提供的Go语言相关工具的可执行文件。
- GOPROXY: 简单来说就是一个代理,让我们更方便的下载哪些由于墙的原因而导致无法下载的第三方包,比如
golang.org/x/
下的包,虽然也有各种方法解决,但是,如果是你在拉取第三方包的时候,而这个包又依赖于golang.org/x/下的包,你本地又恰恰没有,当然不嫌麻烦的话,也可以先拉取golang.org/x/下的包,再拉取第三方包。一般来说,它会与GO111MODULE配合使用。
设置方法
#powershell
# 配置 GOPROXY 环境变量
$env:GOPROXY = "https://goproxy.io,direct"
# 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选)
$env:GOPRIVATE = "git.mycompany.com,github.com/my/private"
#cmd(我使用的这个)
go env -w GOPROXY=https://goproxy.cn,direct
- GO111MODULE:
go modules
是否使用的flag。
早期的GO语言,使用的是go path的方式管理代码,要求所有的代码都必须写在GOPATH\src
目录下,并手动管理依赖。
GO1.11版本以后,官方推出了go modules
版本管理工具,并且从GO1.13开始,go module将是Go语言默认的依赖管理工具。
GO111MODULE 有三个值:off, on和auto(默认值)。- GO111MODULE=
off
,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。 - GO111MODULE=
on
,go命令行会使用modules,而一点也不会去GOPATH目录下查找。 - GO111MODULE=
auto
,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
1)当前目录在GOPATH/src之外且该目录包含go.mod文件
2)当前文件在包含go.mod文件的目录下面。
使用 go module 管理依赖后会在项目根目录下生成两个文件go.mod和go.sum。
- GO111MODULE=
设置方法(请注意:大小写区分)
#cmd(我使用的这个)
go env -w GO111MODULE=on|off|auto
3. GO开发编辑器
Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,学习资料里推荐使用VS Code和Goland。 VS Code是微软开源的编辑器,而Goland是jetbrains出品的付费IDE。
我本次学习中使用VS Code + Go插件
做为go语言的开发工具。
详细参照以下内容:
VS Code配置Go语言开发环境
第一个Go程序
现在我们来创建第一个Go项目——hello
。在我们的任意位置创建一个hello
目录。
在该目录中创建一个main.go
文件:
package main // 声明 main 包,表明当前是一个可执行程序
import "fmt" // 导入内置 fmt 包
func main() { // main函数,是程序执行的入口
fmt.Println("Hello world!") // 在终端打印 Hello World!
}
go build
go build
表示将源代码编译成可执行文件。
在hello目录下执行:
go build
编译得到的可执行文件main.exe
会保存在执行编译命令的当前目录下。
我们还可以使用-o参数来指定编译后想要得到的可执行文件的名字。
// 编译成可执行文件test.exe
go build test.exe
编译GOPATH下的工程时,在其他目录也可以执行以下命令:
go build hello
go编译器会去 GOPATH的src目录下查找你要编译的hello
项目。
go mod init
GO111MODULE=on
时,直接go build
,会出现以下错误:
go: go.mod file not found in current directory or any parent directory; see 'go help modules'
可以通过以下方法解决该问题:
go mod init main // 初始化模块
go build // 编译成可执行文件
go mod init main
执行后,自动生成go.mod
文件,内容如下:
module main
go 1.16
参考:
1、从零开始搭建Go语言开发环境
2、VS Code配置Go语言开发环境
3、Go语言之依赖管理
4、重拾golang - go目录结构说明