封面
版权信息
文前
前言
第一部分 快速入门Go语言
第1章 基础入门:Hello,Go语言
1.1 Hello World
1.2 程序结构分析
1.3 搭建Go语言开发环境
1.4 项目结构
1.5 编译发布
1.6 跨平台编译
1.7 Go编辑器推荐
1.8 小结
第2章 数据类型:Go语言的基石
2.1 一个简单示例
2.2 基础类型
2.3 变量
2.4 常量
2.5 字符串的使用
2.6 小结
第3章 控制结构:if、for、switch那些事儿
3.1 if条件语句
3.2 switch选择语句
3.3 for循环语句
3.4 小结
第4章 集合类型:如何正确使用array、slice和map
4.1 数组
4.2 切片
4.3 映射
4.4 string和[]byte
4.5 小结
第5章 函数和方法:如何区分函数和方法
5.1 函数
5.2 方法
5.3 小结
第6章 struct和interface:隐式的接口实现
6.1 结构体
6.2 接口
6.3 工厂函数
6.4 继承和组合
6.5 类型断言
6.6 小结
第7章 错误处理:如何更优雅地处理程序异常和错误
7.1 错误
7.2 错误嵌套
7.3 defer函数
7.4 panic函数
7.5 recover函数
7.6 小结
第二部分 Go语言的高效并发
第8章 goroutine和channel:并发的基础
8.1 什么是并发
8.2 进程和线程
8.3 协程
8.4 管道
8.5 select+channel示例
8.6 小结
第9章 同步原语:让你对并发控制得心应手
9.1 资源竞争
9.2 同步原语
9.3 小结
第10章 Context:多协程并发控制神器
10.1 协程如何退出
10.2 Context的使用示例
10.3 Context详解
10.4 Context树
10.5 使用Context取消多个协程
10.6 Context传值
10.7 Context使用原则
10.8 小结
第11章 并发模式:拿来即用的经验总结
11.1 for select循环模式
11.2 select timeout模式
11.3 流水线模式
11.4 扇出和扇入模式
11.5 Future模式
11.6 小结
第12章 并发技巧:高效并发安全的字节池
12.1 字节切片
12.2 高效字节池
12.3 使用BytePoolCap
12.4 BytePoolCap与sync.Pool的对比
12.5 小结
第三部分 深入理解Go语言
第13章 指针详解:什么情况下应该使用指针
13.1 什么是指针
13.2 指针的声明和定义
13.3 指针的操作
13.4 指针参数
13.5 指针接收者
13.6 什么情况下使用指针
13.7 小结
第14章 参数传递:值、引用以及指针的区别
14.1 修改参数
14.2 值类型
14.3 指针类型
14.4 引用类型
14.5 类型的零值
14.6 小结
第15章 内存分配:new和make该如何选择
15.1 变量
15.2 new函数
15.3 变量初始化
15.4 小结
第16章 运行时反射:字符串和结构体之间如何转换
16.1 什么是反射
16.2 获取对象的值和类型
16.3 ref lect.Value
16.4 ref lect.Type
16.5 字符串和结构体的互转
16.6 反射定律
16.7 小结
第17章 非类型安全:不安全但高效的unsafe
17.1 指针类型转换
17.2 unsafe.Pointer
17.3 uintptr指针类型
17.4 指针转换规则
17.5 unsafe.Sizeof
17.6 小结
第18章 零拷贝:slice为何如此高效
18.1 数组
18.2 slice
18.3 小结
第19章 实战:字符串如何高效拼接
19.1 一个例子
19.2 几种拼接方式
19.3 性能对比
19.4 拼接函数改造
19.5 再次进行性能测试
19.6 builder拼接慢在哪里
19.7 内存分配优化
19.8 小结
第四部分 Go语言工程管理
第20章 测试:质量保证的基石
20.1 单元测试
20.2 基准测试
20.3 小结
第21章 性能优化:如何写出高质量的代码
21.1 代码规范检查
21.2 性能优化
21.3 小结
第22章 协作开发:模块化管理
22.1 Go语言中的包
22.2 Go语言中的模块
22.3 小结
第五部分 Go语言泛型
第23章 初识泛型:使用泛型简化编程
23.1 一个非泛型示例
23.2 使用泛型重构示例
23.3 类型推导
23.4 自定义类型约束
23.5 内置的类型约束
23.6 函数式编程
23.7 小结
第24章 深入泛型:漫谈泛型设计
24.1 为什么需要泛型
24.2 类型参数
24.3 泛型类型
24.4 类型约束
24.5 再论类型推导
24.6 小结
结束语 你的Go语言成长之路
推荐阅读
作者简介
封底
更新时间:2023-02-23 15:50:37