01-Go环境配置

安装 Go

  1. 下载官方安装包,并安装,建议参考:https://golang.org/doc/install
  2. 第三方工具安装:
    1. GVM
    2. apt / pacman / homebrew
  3. 源码安装

注意配置,GOPATHPATH等环境变量

Go Module, GOPATH 与工作空间

Go Module

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 设置代理
export GOPROXY=https://goproxy.io
# 设置私有代理
export GOPRIVATE=git.xxx.com
# 初始化
go mod init [module name]
go mod init github.com/wuxiaobai24/go-learn
# 检测和清理依赖
go mod tidy
# 安装模块
go get -u <go module path>
# 更新依赖
go get -u
# 指定版本
go get -u github.com/go-ego/gse@v0.60.0-rc4.2
# 使用 Replace
go mod edit -replace github.com/go-ego/ges=/path/to/local/ego
# 下载依赖
go mod download
# 将依赖转移到 vendor 文件夹
go mod vendor
# 修改依赖
go mod edit
# 输出依赖
go mod graph
# 依赖校验
go mod verify

GOPATH

在 Go 1.8 之后,GOPATH 环境变量默认只为$HOME/go%USERPROFILE%/go

GOPATH 有三个文件夹:src, bin, pkg 分别保存着源码,可执行文件,编译后生成的文件。

通常会将bin目录设置到PATH

在使用 Go Module 之前,代码需要在src文件夹下,而现在已经没有这个限制条件了。

Go 命令

go build

  • 普通包:Go会对其进行编译并在pkg下生成对应文件

  • main 包:在当前目录生成可执行文件

  • go build <filename>.go: 只编译某个文件

  • go build会忽略目录下以_.开头的go文件

  • 可以使用文件名后缀来区分不同操作系统所使用的文件,如array_linux.goarray_windows.go

  • 一些参数:

    • -o:指定输出文件名
    • -i:相当于go install
    • -a:更新全部已经是最新的包的,但是对标准包不适用
    • -n:输出编译命令,但不执行
    • -p <n>:指定编译时使用CPU数
    • -race:开启自动检测数据竞争
    • -v:打印正在编译的包
    • -work:打印出来编译时候的临时文件夹名称,并且如果已经存在的话就不要删除
    • -x:输出编译命令且执行

    go clean

    移除当前源码包和关联源码包生成的文件。

  • -i:清除关联的安装包和可运行文件

  • -n:输出清除命令,但不执行

  • -r:循环清除在import中引入的包

  • -x:输出清除命令,并执行

go fmt

格式化代码,一般由编辑器自动调用。

go get

获取远程包,一般会执行两步操作:1. 下载源码包;2. go install

  • -d:只下载不安装
  • -v:显示执行的命令
  • -u:强制使用网络去更新包和它的依赖包

go install

分成两个操作:

  1. 生成结果文件
  2. 把结果文件移入pkgbin

go test

自动获取目录下*_test.go的文件,生成并执行测试。

  • -bench <bench>:指定相应的Benchmark,如go test -bench=.
  • -cover:开启测试覆盖率
  • -run regexp:只运行被regexp匹配的函数
  • -v:显示测试命令

go tool

  • go tool fix .:修改老版本代码到新版本
  • go tool vet .:分析当前目录的代码是否都是正确的。

go generate

用于在编译前自动化生成某类代码。

go generate 通过分析源码中特殊的注释,然后执行相应的命令。

注释格式://go:generate <command>

//go:generate go tool yacc -o gopher.go -p parser gopher.y

在运行go generate时会运行go tool yacc -o gopher.go -p parser gopher.y

godoc

安装:go get golang.org/x/tools/cmd/godoc

  • godoc <package/function>查看文档
  • godoc -http=:8080启动一个Web版本的文档

go run

编译并运行

Go 开发工具

  • vscode
  • Goland
  • vim-go