第1章 语言基础
1.1 Go语言创世纪
1.1.1 来自贝尔实验室特有基因
1.1.2 你好,世界
1.2 “Hello, World”的革命
1.2.1 B语言——Ken Thompson, 1969
1.2.2 C语言——Dennis Ritchie, 1972—1989
1.2.3 Newsqueak——Rob Pike, 1989
1.2.4 Alef——Phil Winterbottom, 1993
1.2.5 Limbo——Sean Dorward, Phil Winterbottom, Rob Pike, 1995
1.2.6 Go语言——2007—2009
1.3 数组、字符串和切片
1.3.1 数组
1.3.2 字符串
1.3.3 切片
1.4 函数、方法和接口
1.4.1 函数
1.4.2 方法
1.4.3 接口
1.5 面向并发的内存模型
1.5.1 Goroutine和系统线程
1.5.2 原子操作
1.5.3 顺序一致性内存模型
1.5.4 初始化顺序
1.5.5 Goroutine的创建
1.5.6 基于通道的通信
1.5.7 不靠谱的同步
1.6 常见的并发模式
1.6.1 并发版本的“Hello, World”
1.6.2 生产者/消费者模型
1.6.3 发布/订阅模型
1.6.4 控制并发数
1.6.5 赢者为王
1.6.6 素数筛
1.6.7 并发的安全退出
1.6.8 context包
1.7 错误和异常
1.7.1 错误处理策略
1.7.2 获取错误的上下文
1.7.3 错误的错误返回
1.7.4 剖析异常
1.8 补充说明
第2章 CGO编程
2.1 快速入门
2.1.1 最简CGO程序
2.1.2 基于C标准库函数输出字符串
2.1.3 使用自己的C函数
2.1.4 C代码的模块化
2.1.5 用Go重新实现C函数
2.1.6 面向C接口的Go编程
2.2 CGO基础
2.2.1 import “C”语句
2.2.2 #cgo语句
2.2.3 build标志条件编译
……
第3章 Go汇编语言
第4章 RPC和Protobuf
第5章 Go和Web
第6章 分布式系统
附录A 使用Go语言常遇到的问题
附录B 有趣的代码片段