更新时间:2021-10-15 18:09:49
封面
版权信息
作者简介
内容简介
前言
第1章 深入Go语言编译器
1.1 为什么要了解Go语言编译器
1.2 Go语言编译器的阶段
1.3 词法解析
1.4 语法解析
1.5 抽象语法树构建
1.6 类型检查
1.7 变量捕获
1.8 函数内联
1.9 逃逸分析
1.10 闭包重写
1.11 遍历函数
1.12 SSA生成
1.13 机器码生成——汇编器
1.14 机器码生成——链接
1.15 ELF文件解析
1.16 总结
第2章 浮点数设计原理与使用方法
2.1 浮点数陷阱
2.2 定点数与浮点数
2.3 IEEE-754浮点数标准
2.4 最佳实践:判断浮点数为整数
2.5 常规数与非常规数
2.6 NaN与Inf
2.7 浮点数精度
2.8 浮点数与格式化打印
2.9 浮点数计算与精度损失
2.10 多精度浮点数与math/big库
2.11 总结
第3章 类型推断全解析
3.1 类型推断的优势
3.2 Go语言中类型推断的特性
3.3 类型推断原理
3.4 总结
第4章 常量与隐式类型转换
4.1 常量声明与生存周期
4.2 常量类型转换
4.3 常量与隐式类型转换原理
4.4 总结
第5章 字符串本质与实现
5.1 字符串的本质
5.2 符文类型
5.3 字符串工具函数
5.4 字符串底层原理
5.5 总结
第6章 数组
6.1 数组的声明方式
6.2 数组值复制
6.3 数组底层原理
6.4 总结
第7章 切片使用方法与底层原理
7.1 切片使用方法
7.2 切片底层原理
7.3 总结
第8章 哈希表与Go语言实现机制
8.1 哈希碰撞与解决方法
8.2 map基本操作
8.3 哈希表底层结构
8.4 哈希表原理图解
8.5 深入哈希表原理
8.6 总结
第9章 函数与栈
9.1 函数基本使用方式
9.2 函数闭包与陷阱
9.3 函数栈
9.4 Go语言栈帧结构
9.5 Go语言函数调用链结构与特性
9.6 堆栈信息
9.7 栈扩容与栈转移原理
9.8 栈调试
9.9 总结
第10章 defer延迟调用
10.1 使用defer的优势
10.2 defer特性
10.3 defer返回值陷阱
10.4 defer底层原理
10.5 总结
第11章 异常与异常捕获
11.1 panic函数使用方法
11.2 异常捕获与recover
11.3 panic与recover嵌套
11.4 panic函数底层原理
11.5 recover底层原理
11.6 总结
第12章 接口与程序设计模式
12.1 接口的用途
12.2 Go语言中的接口
12.3 Go接口实践
12.4 Go接口的使用方法
12.5 接口底层原理
12.6 总结
第13章 反射高级编程
13.1 为什么需要反射
13.2 反射的基本使用方法
13.3 反射底层原理