- Go 调试
- 特点
- 易工程化
- 简单性而不方便性,避免工程复杂性乘法增长 # 某部分变复杂,增加其他部分的复杂性(功能、选项、配置)
- 没有动态库, 没有泛型, 没有继承, 没有异常, 没有宏,没有注解,没有线程局部存储
- 类型系统,无类型风格
- 自然方式工作
- 标准库避免配置和解释 # 自带电池
- 项目结构简单
- 编译检查代码格式
- CSP
- 编译为本地机器码 # 像c一样,所以又叫类c语言
- 编译快
- 引用包名在头
- 包依赖有向无环,可独立和并行编译
- 目标文件包含依赖包信息
- 强静态类型
- 有GC
- 变长栈,最小2kb, 最大1GB
- 大厂支持
- 历史
- 2007年设计,受影响于Alef(CSP系列), Oberon-2(ALGOL60, Modula-2系列), C
- 2009年发布, 作者是Robert Griesemer, Rob Pike, Ken Thompson
- 2012年1.0
- 并发编程
- Go特点
- 语言层面关键字
- 例程
- 流程控制: csp # channel为一等公民
- 通信方式: promise-future, channel, event
- 高效调度模型(调度器,资源占用小)
- O(1)的调度
- 一进程可支撑上百万例程,5kib/goroutine的开销,
- 编译
- 配置
- GOROOT # go安装目录
- GOPATH # 包目录, 默认要有go的bin目录
- GOBIN # 当前bin目录
- GO15VENDOREXPERIMENT # 依赖目录
- GOOS # 指定操作系统, 如android, linux, darwin, windows
- GOARCH # 处理器架构,如amd64, 386, arm
- Go 命令
- Go 工具
- Go 语法
- Go API
- Go 库
- Go 测试
- Go 并发编程