本文视频教程可从以下方式进入,感谢关注并对喜欢的视频一键三连。
可从 B 站搜索:”兰三石”。
或者直接点击此处 B 站视频传送门。
“工欲善其事,必先利其器”,要想使用Go语言开发程序,那么配置Go语言开发环境,就是一个必不可少的环节了。
Go 安装
Go语言的安装,与大部分软件的安装方式都是一样的,下载对应的安装包、二进制文件或者源代码,安装部署即可,当然也可以使用系统提供的包管理工具安装,例如Centos的yum,Mac的brew等。
安装过程比较简单,网上也有很多教程,就不在此过多赘述了,搜索引擎搜索一下相关文档即可。
go module 配置
我们使用go module来进行依赖版本管理,因此我们按照go module的使用场景来配置我们的环境变量。
go module是官方提供的依赖版本管理工具,方便我们在任何目录都可以进行Go语言程序的开发。
我们简单了解下go module的发布历史,go 1.11 的时候,发布了go module这种依赖管理工具,但是当时还不是很成熟。go 1.13 的时候官方正式将go module 做为了默认的依赖版本管理工具,go 1.14后就正式推荐可在生产环境使用了,所以无论是我们的演示例子,还是后面的实战项目,都是使用的go module管理我们的依赖。
环境变量配置
export GOPATH="~/go"
export GOROOT="/usr/local/go"
export PATH=$PATH:/usr/local/go/bin
- GOPATH:Go全局工作区,go module依赖下载后,在存放在 GOPATH 的
pkg/mod
下面。 - GOROOT:Go的安装路径。
上面配置好后,确认go module
是否开启。如果未开启,需要调整未开启的状态。
通过 go env
查看,go 相关的环境变量。
$ go env |grep 111
GO111MODULE="on" # on 是开启,off 是未开启
Go语言在下载依赖的时候,因为访问的都是国外的地址,因此会非常的慢,而且经常会出现超时的情况,因此,就需要配置代理来加速依赖的下载。
咱们这里就是配置七牛云的代理,来进行依赖下载加速了。
go env -w GOPROXY=https://goproxy.cn # 推荐
# linux
export GOPROXY=https://goproxy.cn
# windows
set GOPROXY=https://goproxy.cn
初始化项目
新项目
随便在系统上找个位置,创建一个目录。然后执行 go mod init $projectName
,注意 $projectName
是你自己定义的名字。
mkdir myProject # 创建一个目录
cd myProject # 进入刚创建的目录
go mod init myProject # 通过 go module 初始化成项目的根路径,或者叫做项目的工作目录
执行完go mod init myProject
后在当前项目根目录下,创建一个go.mod
的文件。
依赖安装会创建一个go.sum
文件。
go.mod
和go.sum
都是负责维护当前项目需要的依赖版本的,这两个文件会根据go module
相关的命令进行自动的更新调整。增删改依赖版本。
旧项目
如果需要对一个已经存在的项目启用go module
,可以按照以下步骤操作:
- 在项目目录下执行
go mod init
,生成一个go.mod
文件。 - 执行
go get
,查找并记录当前项目的依赖,同时生成一个go.sum
记录每个依赖库的版本和哈希值。
go.mod
module fiy
go 1.17
require (
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
github.com/alibaba/sentinel-golang v0.6.1
)
其中,
module
用来定义包名require
用来定义依赖包及版本indirect
表示间接引用
当我们访问的依赖无法连接的时候,同时github上存在这种依赖的话,则可以使用replace
这种方式替换成github上对应的库。
replace (
golang.org/x/text v0.3.7 => github.com/golang/text v0.3.7
)
go mod 命令参数
go mod download # 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit # 编辑go.mod文件
go mod graph # 打印模块依赖图
go mod init # 初始化当前文件夹, 创建go.mod文件
go mod tidy # 增加缺少的module,删除无用的module
go mod vendor # 将依赖复制到vendor下
go mod verify # 校验依赖
go mod why # 解释为什么需要依赖
IDE的选择
IDE: 集成开发环境。
我们想要快速的进行开发,辅助工具也是不能少的,IDE的选型也是比较重要的,毕竟使用了一种IDE一段时间后,在切换IDE还是会有很多不舒服的地方。
市面上的IDE,也是有不少种类的,用的比较多也就Goland
和Visual Studio Code
,当然可以根据自己的习惯进行选型,有的人甚至会直接使用Vim进行开发,自己觉得舒服习惯即可。
- Goland:JetBrains 旗下专门为Go开发的IDE,集成了很多功能,自动补全、高亮显示、丰富的插件系统等等。功能很强大,不过是收费,可以通过花钱购买或者开源项目作者的方式申请使用。
- Visual Studio Code,这个也是一个非常不错的轻量型IDE或者应该叫做编辑器更为贴切,支持各种语言,但是需要安装对应的插件,并且插件系统非常的强大,而且最重要的是,它是免费的,所以现在很多程序员都开始使用这个工具了。
总的来说,你想用功能强大但是收费的那么就选择Goland。不想付费的话,就可以考虑下Visual Studio Code
,Visual Studio Code
安装上对应的插件后,也是很不错的。
第一个Go程序
如果上面的动作都做完了,Go安装、环境变量配置好了、IDE也选择好了,那么就开始我们第一个Go程序了。输出“Hello world!”
package main // 必须要有的
import ( // 引入依赖
"fmt"
)
func main() { // 入口函数,主函数
fmt.Println("Hello World!")
}
- package:包名,一组程序的集合。
- import:导入fmt库。
- main:主函数,也称为入口函数,在一个完整的Go项目中,只能允许一个main函数的存在。
运行程序
go run main.go
编译程序
go build main.go
go 常用命令行工具
- go build:成程序编译成可执行二进制文件。
- go run:将程序先编译成可执行二进制文件,在运行程序。
- go fmt:格式化代码。
- go test:运行测试命令
- go get:下载第三方依赖库的命令。
- go version:查看Go语言版本。
- go env:查询与Go语言相关的环境变量。