【搞定Go语言】第1天1:从零开始搭建Go语言开发环境

下载地址
Go官网下载地址:https://golang.org/dl/

Go官方镜像站(推荐):https://golang.google.cn/dl/

版本的选择
Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。
在这里插入图片描述

下图中的版本号可能并不是最新的,但总体来说安装教程是类似的。Go语言更新迭代比较快,推荐使用较新版本,体验最新特性。

download1

安装
Windows安装
此安装实例以 64位Win10系统安装 Go1.14.1可执行文件版本为例。

将上一步选好的安装包下载到本地。
在这里插入图片描述

download2

双击下载好的文件,然后按照下图的步骤安装即可。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux下安装
如果不是要在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是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。

export GOROOT=/usr/local/go
export PATH= P A T H : PATH: PATH:GOROOT/bin
修改/etc/profile后要重启生效,修改 H O M E / . p r o f i l e 后 使 用 s o u r c e 命 令 加 载 HOME/.profile后使用source命令加载 HOME/.profile使sourceHOME/.profile文件即可生效。 检查:

~ go version
go version go1.14.1 linux/amd64
Mac下安装
下载可执行文件版,直接点击下一步安装即可,默认会将go安装到/usr/local/go目录下。 Mac安装Go

检查
上一步安装过程执行完毕后,可以打开终端窗口,输入go version命令,查看安装的Go版本。 install06

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

GOPATH在不同操作系统平台上的默认值

平台 GOPATH默认值 举例
Windows %USERPROFILE%/go C:\Users\用户名\go
Unix $HOME/go /home/用户名/go
可以通过以下方法查看默认的GOPATH目录:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们只需要记住默认的GOPATH路径在哪里就可以了,并且默认情况下 GOROOT下的bin目录及GOPATH下的bin目录都已经添加到环境变量中了,我们也不需要额外配置了。
Go项目结构
在进行Go语言开发的时候,我们的代码总是会保存在 G O P A T H / s r c 目 录 下 。 在 工 程 经 过 g o b u i l d 、 g o i n s t a l l 或 g o g e t 等 指 令 后 , 会 将 下 载 的 第 三 方 包 源 代 码 文 件 放 在 GOPATH/src目录下。在工程经过go build、go install或go get等指令后,会将下载的第三方包源代码文件放在 GOPATH/srcgobuildgoinstallgogetGOPATH/src目录下, 产生的二进制可执行文件放在 $GOPATH/bin目录下,生成的中间缓存文件会被保存在 $GOPATH/pkg 下。

如果我们使用版本管理工具(Version Control System,VCS。常用如Git)来管理我们的项目代码时,我们只需要添加$GOPATH/src目录的源代码即可。bin 和 pkg 目录的内容无需版本控制。

适合个人开发者
我们知道源代码都是存放在GOPATH的src目录下,那我们可以按照下图来组织我们的代码。

1550805203054

目前流行的项目结构
Go语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用顶级域名来作为包名的前缀,这样就不担心项目名冲突的问题了。

因为不是每个个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的github用户名来区分不同的包。

1550805044488

举个例子:张三和李四都有一个名叫studygo的项目,那么这两个包的路径就会是:

import “github.com/zhangsan/studygo”

import “github.com/lisi/studygo”
以后我们从github上下载别人包的时候,如:

go get github.com/jmoiron/sqlx
那么,这个包会下载到我们本地GOPATH目录下的src/github.com/jmoiron/sqlx。

适合企业开发场景
1550806101915

GOPROXY
Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)

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

可以执行下面的命令修改GOPROXY:

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

第一个Go程序
Hello World
现在我们来创建第一个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
或者在其他目录执行以下命令:

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

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

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

c:\desktop\hello>hello.exe
Hello World!
我们还可以使用-o参数来指定编译后得到的可执行文件的名字。

go build -o heiheihei.exe
Windows下VSCode切换cmd.exe作为默认终端
如果你打开VS Code的终端界面出现如下图场景(注意观察红框圈中部分),那么你的VS Code此时正使用powershell作为默认终端: vscode shell配置1 十分推荐你按照下面的步骤,选择cmd.exe作为默认的终端工具: vscode shell配置2 此时,VS Code正上方中间位置会弹出如下界面,参照下图挪动鼠标使光标选中后缀为cmd.exe的那一个,然后点击鼠标左键。

最后重启VS Code中已经打开的终端或者直接重启VS Code就可以了。 vscode shell配置3 如果没有出现下拉三角,也没有关系,按下Ctrl+Shift+P,VS Code正上方会出现一个框,你按照下图输入shell,然后点击指定选项即可出现上面的界面了。 vscode shell配置4

补充说明:由于VS Code对go mod模式的支持暂时还不够完善,建议大家使用Goland编辑器。

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

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

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

SET CGO_ENABLED=0 // 禁用CGO
SET GOOS=linux // 目标平台是linux
SET GOARCH=amd64 // 目标处理器架构是amd64
使用了cgo的代码是不支持跨平台编译的

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

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

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux 下编译 Mac 和 Windows 平台64位可执行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Windows下编译Mac平台64位可执行程序:

SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build
现在,开启你的Go语言学习之旅吧。人生苦短,let’s Go.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值