安装

下载地址:

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

版本的选择:

Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。
Go语言更新迭代比较快,推荐使用较新版本,体验最新特性。

Linux下安装

下载地址:

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

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

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

wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz
将下载好的文件解压到/usr/local目录下:

tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local # 解压
如果提示没有权限,加上sudo以root用户的身份再运行。执行完就可以在/usr/local/下看到go目录了。

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

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

在开发 Go 项目时,你还需要一个环境变量来保存你的工作目录。
export GOPATH=$HOME/Applications/Go
$GOPATH 可以包含多个工作目录,取决于你的个人情况。如果你设置了多个工作目录,那么当你在之后使用 go get(远程包安装命令)时远程包将会被安装在第一个目录下。

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

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

GOPROXY

1
$ export GOPROXY=https://goproxy.cn

或者

1
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile && source ~/.profile

环境变量

GOROOT和GOPATH

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

我们只需要记住默认的GOPATH路径在哪里就可以了,并且默认情况下 GOROOT下的bin目录及GOPATH下的bin目录都已经添加到环境变量中了,我们也不需要额外配置了。


Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了;GOPATH下可以包含多个包含 Go 语言源码文件、包文件和可执行文件的路径,而这些路径下又必须分别包含三个规定的目录:src、pkg 和 bin,这三个目录分别用于存放源码文件、包文件和可执行文件。你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)

老版本1.11之前,Go语言开发的时候,我们的代码总是会保存在$GOPATH/src目录下。在工程经过go build、go installgo get等指令后,会将下载的第三方包源代码文件放在$GOPATH/src目录下, 产生的二进制可执行文件放在 $GOPATH/bin目录下,生成的中间缓存文件会被保存在$GOPATH/pkg 下。
如果我们使用版本管理工具(Version Control System,VCS。常用如Git)来管理我们的项目代码时,我们只需要添加$GOPATH/src目录的源代码即可。bin 和 pkg 目录的内容无需版本控制。

GOPROXY

默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.iohttps://goproxy.cn

可以执行下面的命令修改GOPROXY:
go env -w GOPROXY=https://goproxy.cn,direct

企业开发者的go项目结构

参考文档:go语言中文文档

编辑器

vs code

Visual Studio Code,简称VS Code,它是目前使用人数最多的编辑器。尽管它由微软发布于2015年,与其他热门编辑器相比显得有些年轻,但它在过去几年中一直在不停的更新,它在最新的Stack Overflow调查中被选为Web开发人员中最受欢迎的文本编辑器。

VS Code不仅仅是一个基本的代码编辑器。有人说它更像是IDE而不是代码编辑器,因为它提供了许多通常只在IDE中才有的功能。主要功能包括内置调试工具,智能代码提示,集成终端以及对简易的Git操作(微软刚收购了GitHub)。作为初学者,您可以利用这些功能大大提高编程效率。

下载地址:

https://code.visualstudio.com/

配置中文

点击左侧菜单栏最后一项管理扩展,在搜索框中输入chinese,选中结果列表第一项,点击install安装。

安装go插件

启动vscode选择插件->搜go选择Go for Visual Studio Code插件点击安装即可

安装Go语言开发工具包

在Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。

Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P,这个时候VS Code界面会弹出一个输入框;

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

VS Code此时会下载并安装上图列出来的16个工具,但是由于国内的网络环境基本上都会出现安装失败

两种方法解决这个问题:

方法一:使用git下载源代码再安装

我们可以手动从github上下载工具,(执行此步骤前提需要你的电脑上已经安装了git)
第一步:现在自己的GOPATHsrc目录下创建golang.org/x目录
第二步:在终端/cmd中cd到GOPATH/src/golang.org/x目录下
第三步:执行git clone https://github.com/golang/tools.git tools命令
第四步:执行git clone https://github.com/golang/lint.git命令
第五步:按下Ctrl/Command+Shift+P再次执行Go:Install/Update Tools命令,在弹出的窗口全选并点击确定,这一次的安装都会SUCCESSED了。
经过上面的步骤就可以安装成功了。 这个时候创建一个Go文件,就能正常使用代码提示、代码格式化等工具了。

方法二:下载已经编译好的可执行文件

如果上面的步骤执行失败了或者懒得一步一步执行,可以直接下载我已经编译好的可执行文件,拷贝到自己电脑上的 go/bin(GO的安装包目录不是代码包啊) 目录下。

链接: https://pan.baidu.com/s/1kxXsoSXmqwloTKsvRGZbpQ
提取码: cucu

注意:特别是Mac下需要给拷贝的这些文件赋予可执行的权限。

第一个Go程序

Hello World

现在我们来创建第一个Go项目——hello。在我们桌面创建一个hello目录。
在该目录中创建一个main.go文件:

1
2
3
4
5
6
7
package main // 声明 main 包,表明当前是一个可执行程序

import "fmt" // 导入内置 fmt 包

func main(){ // main函数,是程序执行的入口
fmt.Println("Hello World!") // 在终端打印 Hello World!
}

go build

go build表示将源代码编译成可执行文件,或者在其他目录执行以下命令:

1
go build hello

go编译器会去 GOPATH的src目录下查找你要编译的hello项目

如果报错go: cannot find main module; see 'go help modules',可能是变量GO111MODULE导致,试试设置为GO111MODULE=off

编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到hello.exe可执行文件。

可在终端直接执行该hello.exe文件:

1
2
c:\desktop\hello>hello.exe
Hello World!

我们还可以使用-o参数来指定编译后得到的可执行文件的名字。

1
go build -o heiheihei.exe

go install

go install表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH的bin目录下。因为我们的环境变量中配置了GOPATH下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。

go install与go build 的区别

go installgo build都可生成执行文件

go build会生成可实行文件放在当前目录中。
go install则会把它放到$GOPATH/bin中。

go install还会把导入的依赖包编译到$GOPATH/pkg,并缓存,如果包未做更改,下次编译则直接使用缓存。go build命令加参数-i也能达到go install的效果。

如果项目很大,每次编译都要花很长时间,则建议使用go install来编译,充分利用它对依赖包的缓存功能。

go run

1
2
# 直接执行go文件,不用编译
go run main.go

跨平台编译(more)

默认我们go build的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢?

只需要指定目标操作系统的平台和处理器架构即可:

1
2
3
SET CGO_ENABLED=0  // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64

使用了cgo的代码是不支持跨平台编译的

然后再执行go build命令,得到的就是能够在Linux平台运行的可执行文件了。

Mac 下编译 Linux 和 Windows平台 64位 可执行程序:

1
2
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Linux 下编译 Mac 和 Windows 平台64位可执行程序:

1
2
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Windows下编译Mac平台64位可执行程序:

1
2
3
4
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build