【实例简介】

【实例截图】

from clipboard


from clipboard


from clipboard



【核心代码】


第 1 章 关于 Go 语言的介绍 1
1.1 用Go解决现代编程难题 2
1.1.1 开发速度 2
1.1.2 并发 3
1.1.3 Go 语言的类型系统 5
1.1.4 内存管理 7
1.2 你好,Go 7
1.3 小结 8
第2章 快速开始一个Go程序 9
2.1 程序架构 9
2.2 main 包 11
2.3 search 包 13
2.3.1 search.go 13
2.3.2 feed.go 21
2.3.3 match.go/default.go 24
2.4 RSS 匹配器 30
2.5 小结 36
第 3 章 打包和工具链 37
3.1 包 37
3.1.1 包名惯例 38
3.1.2 main 包 38
3.2 导入 39
3.2.1 远程导入 40
3.2.2 命名导入 40
3.3 函数 init 41
3.4 使用 Go 的工具 42
3.5 进一步介绍 Go 开发
工具 44
3.5.1 go vet 44
3.5.2 Go 代码格式化 45
3.5.3 Go 语言的文档 45
3.6 与其他Go开发者合作 48
3.7 依赖管理 48
3.7.1 第三方依赖 49
3.7.2 对 gb 的介绍 50
3.8 小结 52
第 4 章 数组、切片和映射 53
4.1 数组的内部实现和基础
功能 53
4.1.1 内部实现 53
4.1.2 声明和初始化 54
4.1.3 使用数组 55
4.1.4 多维数组 58
4.1.5 在函数间传递数组 59
4.2 切片的内部实现和基础
功能 60
4.2.1 内部实现 60
4.2.2 创建和初始化 61
4.2.3 使用切片 63
4.2.4 多维切片 74
4.2.5 在函数间传递切片 75
4.3 映射的内部实现和基础
功能 76
4.3.1 内部实现 76
4.3.2 创建和初始化 78
4.3.3 使用映射 79
4.3.4 在函数间传递映射 81
4.4 小结 82

第 5 章 Go 语言的类型系统 83
5.1 用户定义的类型 83
5.2 方法 87
5.3 类型的本质 90
5.3.1 内置类型 91
5.3.2 引用类型 91
5.3.3 结构类型 93
5.4 接口 95
5.4.1 标准库 96
5.4.2 实现 98
5.4.3 方法集 99
5.4.4 多态 103
5.5 嵌入类型 105
5.6 公开或未公开的
标识符 113
5.7 小结 121
第 6 章 并发 122
6.1 并发与并行 122
6.2 goroutine 125
6.3 竞争状态 132
6.4 锁住共享资源 135
6.4.1 原子函数 135
6.4.2 互斥锁 138
6.5 通道 140
6.5.1 无缓冲的通道 141
6.5.2 有缓冲的通道 146
6.6 小结 149
第 7 章 并发模式 150
7.1 runner 150
7.2 pool 158
7.3 work 168
7.4 小结 174
第 8 章 标准库 176
8.1 文档与源代码 177
8.2 记录日志 178
8.2.1 log 包 179
8.2.2 定制的日志记录器 182
8.2.3 结论 186
8.3 编码/解码 187
8.3.1 解码 JSON 187
8.3.2 编码 JSON 192
8.3.3 结论 193
8.4 输入和输出 193
8.4.1 Writer 和 Reader 接口 194
8.4.2 整合并完成工作 195
8.4.3 简单的 curl 199
8.4.4 结论 200
8.5 小结 200
第 9 章 测试和性能 201
9.1 单元测试 201
9.1.1 基础单元测试 202
9.1.2 表组测试 205
9.1.3 模仿调用 208
9.1.4 测试服务端点 212
9.2 示例 217
9.3 基准测试 220
9.4 小结 224