基于go1.14.2
1. go简介
1.1 Go生态,站在巨人的肩膀上

1.2 开发环境安装
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
将/usr/local/go/bin添加到PATH环境变量中,创建workspace目录/home/go,在这个文件夹下创建 /bin /src /pkg 三个目录。
然后将/home/go目录配置到GOPATH(工作空间)目录中,其中GO代码必须在工作空间中。
把 /usr/local/go/bin目录配置GOROOT 到环境变量里。
1 | export GOROOT="/usr/local/go" |
Go1.14版本之后,都推荐使用go mod模式来管理依赖了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。
默认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
1.3 Go语言特性
极简部署:可直接编译机器码,不依赖其他库,直接运行可部署;
静态语言:编译的时候检查出大多数问题;
语言层面并发支持:天生基因支持,充分利用多核
强大标准库:runtime系统调度机制,高效的GC垃圾回收,丰富的标准库
简单易学:继承,封装,多态,跨平台
大厂领军:Google,facebook,tencent,baidu,京东,小米,阿里,字节,新浪,滴滴
1.4 Golang适合做什么
(1)、云计算基础设施领域
代表项目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存储等。
(2)、基础后端软件
代表项目:tidb、influxdb、cockroachdb等。
(3)、微服务
代表项目:go-kit、micro、monzo bank的typhon、bilibili等。
(4)、互联网基础设施
代表项目:以太坊、hyperledger等。
1.5 Golang的不足
1、包管理,大部分包都在github上
2、无泛化类型:(Golang 1.18+已经支持泛型)
3、所有Excepiton都用Error来处理(比较有争议)。
4、对C的降级处理,并非无缝,没有C降级到asm那么完美(序列化问题)
2. 第一个Golang程序
到$GOPATH目录之后,有三个文件夹 /bin /src /pkg。 src表示工程源码文件,进入src下面后,每个文件夹是一个工程,创建一个项目(文件夹)
go run a.go 表示直接编译并运行应用程序
go build a.go 会生成一个exe文件
go中换行时,写不写;都可以。