• 封面
  • 版权信息
  • 内容提要
  • 译者序
  • 译者简介
  • 序
  • 前言
  • 致谢
  • 关于本书
  • 关于封面插图
  • 第1章 关于Go语言的介绍
  • 1.1 用Go解决现代编程难题
  • 1.1.1 开发速度
  • 1.1.2 并发
  • 1.1.3 Go语言的类型系统
  • 1.1.4 内存管理
  • 1.2 你好,Go
  • 介绍Go Playground
  • 1.3 小结
  • 第2章 快速开始一个Go程序
  • 2.1 程序架构
  • 2.2 main包
  • 2.3 search包
  • 2.3.1 search.go
  • 2.3.2 feed.go
  • 2.3.3 match.go/default.go
  • 2.4 RSS匹配器
  • 2.5 小结
  • 第3章 打包和工具链
  • 3.1 包
  • 3.1.1 包名惯例
  • 3.1.2 main包
  • 3.2 导入
  • 3.2.1 远程导入
  • 3.2.2 命名导入
  • 3.3 函数init
  • 3.4 使用Go的工具
  • 3.5 进一步介绍Go开发工具
  • 3.5.1 go vet
  • 3.5.2 Go代码格式化
  • 3.5.3 Go语言的文档
  • 3.6 与其他Go开发者合作
  • 以分享为目的创建代码库
  • 3.7 依赖管理
  • 3.7.1 第三方依赖
  • 3.7.2 对gb的介绍
  • 3.8 小结
  • 第4章 数组、切片和映射
  • 4.1 数组的内部实现和基础功能
  • 4.1.1 内部实现
  • 4.1.2 声明和初始化
  • 4.1.3 使用数组
  • 4.1.4 多维数组
  • 4.1.5 在函数间传递数组
  • 4.2 切片的内部实现和基础功能
  • 4.2.1 内部实现
  • 4.2.2 创建和初始化
  • 4.2.3 使用切片
  • 4.2.4 多维切片
  • 4.2.5 在函数间传递切片
  • 4.3 映射的内部实现和基础功能
  • 4.3.1 内部实现
  • 4.3.2 创建和初始化
  • 4.3.3 使用映射
  • 4.3.4 在函数间传递映射
  • 4.4 小结
  • 第5章 Go语言的类型系统
  • 5.1 用户定义的类型
  • 5.2 方法
  • 5.3 类型的本质
  • 5.3.1 内置类型
  • 5.3.2 引用类型
  • 5.3.3 结构类型
  • 5.4 接口
  • 5.4.1 标准库
  • 5.4.2 实现
  • 5.4.3 方法集
  • 5.4.4 多态
  • 5.5 嵌入类型
  • 5.6 公开或未公开的标识符
  • 5.7 小结
  • 第6章 并发
  • 6.1 并发与并行
  • 6.2 goroutine
  • 6.3 竞争状态
  • 6.4 锁住共享资源
  • 6.4.1 原子函数
  • 6.4.2 互斥锁
  • 6.5 通道
  • 6.5.1 无缓冲的通道
  • 6.5.2 有缓冲的通道
  • 6.6 小结
  • 第7章 并发模式
  • 7.1 runner
  • 7.2 pool
  • 7.3 work
  • 7.4 小结
  • 第8章 标准库
  • 8.1 文档与源代码
  • 8.2 记录日志
  • 8.2.1 log包
  • 8.2.2 定制的日志记录器
  • 8.2.3 结论
  • 8.3 编码/解码
  • 8.3.1 解码JSON
  • 8.3.2 编码JSON
  • 8.3.3 结论
  • 8.4 输入和输出
  • 8.4.1 Writer和Reader接口
  • 8.4.2 整合并完成工作
  • 8.4.3 简单的curl
  • 8.4.4 结论
  • 8.5 小结
  • 第9章 测试和性能
  • 9.1 单元测试
  • 9.1.1 基础单元测试
  • 9.1.2 表组测试
  • 9.1.3 模仿调用
  • 9.1.4 测试服务端点
  • 9.2 示例
  • 9.3 基准测试
  • 9.4 小结