1、版本
2007年9月25日,Rob Pike在一封回复邮件中把新语言命名为Go。
2009年10月30日,Go语言首次公之于众。
2009年11月10日正式开源,这一天被Go官方确定为Go语言诞生日。
Go语言也拥有了自己的吉祥物(Rob Pike夫人Renee French设计的地鼠)。Go程序员被称为
Gopher。
2012年3月28日,Go 1.0正式发布。
2015年8月19日,Go 1.5这个里程碑版本发布。
Go不在依赖C编译器,Go编译器和运行时都使用Go代码了,实现了自举
GOMAXPROCS的默认值1改为运行环境的CPU核数
2018年8月25日,Go1.11版本发布。
引入Go Module包管理机制
2021年2月18日,Go 1.16版本发布。
Go Module-aware模式成为默认模式,即GO111MODULE默认从auto改为on
go build/run命令不再自动更新go.mod和go.sum文件
2022年3月15日,Go 1.18版本发布
引入了泛型Generic
支持工作区Workspace
安装
前稳定版本1.19.x 和 1.20.x
安装文档:
https://golang.google.cn/doc/install
从https://go.dev/dl/ 或 https://golang.google.cn/dl/ 下载对应操作系统平台指定的版本即可。
linux安装
tar xf go1.20.4.linux-amd64.tar.gz -C /usr/local
export PATH=$PATH:/usr/local/go/bin
export GOPROXY=https://mirrors.aliyun.com/goproxy/,direct //1.13开始支持,建议修改成国内的镜像站
//环境变量
# go env
GO111MODULE="" //早期的版本管理以来使用GOPATH和vender文件夹,
从1.11引入Go Module,1.16版本开始GO111MODULE默认为on,会根据go.mod管理和下载依赖
GO
GOARCH="amd64"
GOENV="/root/.config/go/env"
GOMODCACHE="/root/go/pkg/mod" //存储第三方依赖包
GOOS="linux"
GOPATH="/root/go" //第三方依赖包的安装路径,现在的版本统一由go mod管理
GOPROXY="https://mirrors.aliyun.com/goproxy/,direct"
GOROOT="/usr/local/go" //go的安装目录
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVERSION="go1.20.4"
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/go/bi
n
GOPROXY 1.13开始支持。国外站点经常失败,建议改为国内镜像站地址
参考 https://go.dev/ref/mod#environment-variables
GOPROXY 缺省是 https://proxy.golang.org,direct
direct 表示从镜像下载失败后,直接从原版本库地址下载 o
ff 表示不允许从任何源下载
GOPROXY环境变量可以指定包下载镜像
七牛云:
GOPROXY=https://goproxy.cn,direct
阿里云:
GOPROXY=https://mirrors.aliyun.com/goproxy/
腾讯云:
GOPROXY=https://mirrors.cloud.tencent.com/go/
VSCODE常用插件
- Go
- gopls 自动构建,格式化,自动完成
- dlv 调试工具F5
- Outline Map 源码大纲
- Golang postfix
- run code
Go命令
1、go version
2、go env
3、go mod //Go Module工程化模块相关命令,模块化之后就可以进行更好的工程管理,依赖管理
go mod init test.com/test //初始化模块目录,产生go.mod文件,和git int等很类似
go mod tidy //扫描当前模块,从go.mod中移除未使用的依赖,添加新的依赖
4、go get //查找依赖包,如果未下载,则下载项目依赖包,添加相关信息到go.mod中,文件存储到环境变量
GOMODCACHE指定的目录中(默认是GOPATH/pkg/mod) -u:下载最新的包或有效的更新包,默认情况下,本地有包就不下载了
如果有最新的版本,-u会更新本地包
5、install 除了具备get的功能外,如果需要编译包,就执行go install,并把编译好的可执行文件放到
GOPATH/bin下,例如:go install golang.org/x/tools/gopls@latest
6、build 编译go代码,生成可执行文件 -o指定生成的可执行文件,go build -o hello.exe main.go
7、run 编译生成可执行文件并执行
go run main.go 指定main函数所在文件
go run test.com/test 去该模块找main函数
8、fmt 对代码格式化