概述
- Google在2009年发布
优点
- 极简单的部署方式:
· 可直接编译成机器码
· 不依赖其他库
· 直接运行即可部署 - 静态类型语言:编译的时候通过静态代码检测检查出来隐藏的大多数问题
go build 文件名
- 语言层面的并发:
· 天生的基因支持:go 方法名
=> 开启一个协程
· 充分的利用多核 - 强大的标准库:
· runtime系统调度机制
· 高效的GC垃圾回收:内存自动回收 不需要开发人员管理
· 丰富的标准库:进程、线程、email、debug、文件系统、压缩、加解密、同步机制… - 简单易学
· 25个关键词:简单易学
· C语言简洁基因,内嵌C语法支持
· 面向对象特征:继承、多态、封装
· 跨平台语言 - 性能高:编译速度和运行速度快
应用强项
代表作品:docker、kubernetes
- 云计算基础设施领域代表项目:docker、kurbernetes、etcd、consul、cloudflare CDN、七牛云存储…
- 基础后端软件代表项目:tidb、influxdb、cockroachdb…
- 微服务代表项目:go-kit、micro、monzo back的typhon、bilibili…
- 互联网基础设置代表项目:以太坊、hyperledger…
缺点
- 包管理大部分都在github上。github是个人账号,而不是权威机构,不稳定、不安全。
- 所有Exception都用Error来处理。而Java是把所有Error用Exception处理。
Hello world
程序体:
package main // 程序的包名main函数所在的包名都是main包
import "fmt" // 导包
func main() { // 左括号必须与函数定义在同一行
fmt.Println("hello world");
}
编译命令:go build hello.go
,编译后在目录下会出现一个hello可执行程序
指令命令:./hello
编译+执行:go run hello.go