1.
前言
1.1.
演化
1.2.
特色
2.
环境搭建
2.1.
环境变量
2.2.
包管理器
2.3.
Go工具链
2.4.
代理加速
2.5.
集成开发环境
2.5.1.
VsCode
2.5.2.
Goland
2.5.3.
Vim
3.
入门
3.1.
你好Go
3.2.
编译
3.3.
运行与参数
3.4.
项目结构
4.
命名
4.1.
关键字和保留字
4.2.
标识符命名规则
5.
变量
5.1.
变量的定义和初始化
5.2.
常见的赋值模式
5.3.
变量的作用域和生命周期
5.4.
内存管理
6.
常量与字面量
6.1.
nil
6.2.
true和false
6.3.
枚举·类型与iota
6.4.
不能定义常量的情况
7.
基本数据类型
7.1.
整型
7.2.
浮点型
7.3.
复数
7.4.
布尔型
7.5.
字符串
7.6.
字节
7.7.
rune
8.
复合数据类型
8.1.
数组
8.2.
切片
8.3.
Map
8.4.
指针
8.5.
结构体
8.6.
接口
8.7.
Big类型
8.8.
链表
8.9.
ring
8.10.
栈
8.11.
Json
8.12.
文本模板
8.13.
Html模板
9.
类型转换
9.1.
基本类型之间的转换
9.2.
类型断言
9.3.
类型switch
9.4.
类型推断
10.
控制流语句
10.1.
条件语句
10.1.1.
if
10.1.2.
switch
10.2.
循环语句
10.2.1.
for循环
10.3.
跳转语句
10.3.1.
break
10.3.2.
continue
10.3.3.
goto
11.
函数
11.1.
函数的定义和调用
11.2.
参数传递
11.3.
可变参数
11.4.
多返回值
11.5.
函数值
11.6.
匿名函数和闭包
11.7.
递归函数
11.8.
延迟函数调用
11.9.
Go内置函数
12.
惯用法
12.1.
简短声明
12.2.
空标识符
12.3.
多值返回
12.4.
comma ok idiom
12.5.
defer
12.6.
switch
12.7.
select
12.8.
匿名函数和闭包
12.9.
标签
12.10.
range迭代
12.11.
结构体标签
13.
错误处理
13.1.
错误的概念与类型
13.2.
panic与recover
13.3.
error 处理
14.
方法
14.1.
方法声明
14.2.
基于指针对象的方法
14.3.
嵌入结构体扩展
15.
接口与类型断言
15.1.
接口的定义与实现
15.2.
类型断言
15.3.
接口的多态性
16.
并发编程
16.1.
CSP 模型
16.2.
Actor 模型
16.3.
协程
16.4.
协程的实现
16.5.
管道
16.6.
管道实现
16.7.
select语句
16.8.
WaitGroup
16.9.
ErrorGroup
16.10.
调度器
16.11.
Reactor模式
16.12.
Proactor模式
16.13.
Observer模式
17.
并发与同步
17.1.
同步原语
17.2.
原子操作
17.3.
竞争条件
17.4.
临界区
17.5.
互拆锁
17.6.
读写锁
17.7.
自旋锁
17.8.
内存同步
17.9.
runtime 运行时操作
17.10.
context 上下文
18.
运算符
18.1.
算术运算符
18.2.
关系运算符
18.3.
逻辑运算符
18.4.
位运算符
18.5.
赋值运算符
18.6.
一元运算符
18.7.
位长度运算符
18.8.
容量运算符
18.9.
类型断言
18.10.
接受者运算符
19.
包和模块
19.1.
包的概念与使用
19.2.
Go Modules
19.3.
Go Vendor
19.4.
模块工作区
19.5.
包的导入路径与可见性
19.6.
init函数
19.7.
包的安装和原理
19.8.
发布包
20.
泛型
20.1.
泛型基础
20.2.
泛型约束
20.3.
泛型编程模式
20.4.
实战案例
20.5.
性能与优化
20.6.
泛型高级主题
21.
文件与IO操作
21.1.
文件基础
21.2.
文件操作
21.3.
文件高级操作
21.4.
输入输出流
21.5.
高效 IO 操作
21.6.
文件与 IO 的安全性
21.7.
常见文件格式处理
21.8.
实战案例
21.9.
进阶主题
21.10.
io 基本接口和实现
21.11.
os 操作系统功能
21.12.
path 路径操作
21.13.
工具与库
22.
正则表达式
22.1.
Go 的正则表达式库
22.2.
正则表达式的应用
22.3.
正则表达式的高级用法
22.4.
常见正则表达式模式
22.5.
错误处理与调试
23.
数据处理
23.1.
bytes
23.2.
strings 字符串操作
23.3.
strconv
23.4.
text 文本处理工具
23.5.
regexp
23.6.
unicode 字符操作
23.7.
bufio
23.8.
image
24.
数据编码
24.1.
数据编码标准
24.2.
文本编码
24.3.
二进制编码
24.4.
图像和音频编码
24.5.
json
24.6.
xml
24.7.
base64
24.8.
csv
24.9.
ini
24.10.
TOML
25.
时间日期
25.1.
time包
25.2.
时间格式化与解析
25.3.
时区处理
25.4.
定时器与计时器
25.5.
时间的高级应用
25.6.
常见问题与最佳实践
26.
数学
26.1.
数学函数
26.2.
随机数生成与概率计算
26.3.
线性代数
26.4.
数学优化
26.5.
数值计算
26.6.
统计分析
26.7.
数学在计算机科学中的应用
27.
设计模式
27.1.
创建型模式
27.1.1.
工厂模式
27.1.2.
抽象工厂模式
27.1.3.
生成器模式
27.1.4.
原型模式
27.1.5.
单例模式
27.2.
结构型模式
27.2.1.
适配器模式
27.2.2.
桥接模式
27.2.3.
组合模式
27.2.4.
装饰模式
27.2.5.
外观模式
27.2.6.
享元模式
27.2.7.
代理模式
27.2.8.
迭代器模式
27.3.
行为模式
27.3.1.
责任链模式
27.3.2.
命令模式
27.3.3.
中介者模式
27.3.4.
备忘录模式
27.3.5.
观察者模式
27.3.6.
状态模式
27.3.7.
策略模式
27.3.8.
模板方法模式
27.3.9.
访问者模式
28.
日志
28.1.
go标准log库
28.2.
第三方log库
28.3.
日志聚合
29.
数据库与持久化
29.1.
常见数据库安装
29.2.
数据库基础概念
29.3.
数据库范式
29.4.
SQL必知必会
29.5.
使用数据库/SQL库
29.6.
数据库连接池
29.7.
ORM框架
29.8.
数据迁移和管理
29.9.
事务处理
29.10.
性能优化
29.11.
测试
29.12.
安全
29.13.
高可用和备份
29.14.
NoSQL数据库
29.15.
实践项目
29.16.
数据库分片、分布式事务和一致性
29.17.
GraphQL
29.18.
数据库监控和日志
30.
工具与命名行
30.1.
命令行参数
30.2.
标准库 flag
30.3.
使用第三方库解析命令行参数
30.4.
命令行工具的设计与实现
31.
测试
31.1.
基本测试
31.2.
基准测试
31.3.
示例测试
31.4.
高级测试技术
31.5.
第三方测试库
31.6.
测试覆盖率
31.7.
测试最佳实践
32.
反射
32.1.
反射基础
32.2.
reflect.TypeOf和reflect.ValueOf
32.3.
动态访问和修改变量
32.4.
方法集和接口的动态调用
32.5.
发射与错误处理
32.6.
发射在测试和调试中的应用
32.7.
动态创建类型
32.8.
反射与泛型
32.9.
反射与并发
32.10.
反射的性能
32.11.
反射的安全和限制
33.
debug与性能优化
33.1.
debug 标准库调试工具
33.2.
expvar 导出变量
33.3.
GDB
33.4.
Delve
33.5.
pprof
34.
压缩与归档
34.1.
压缩工具集
34.2.
归档工具集
34.3.
综合应用
34.4.
高级应用
34.5.
错误处理与测试
35.
系统编程
35.1.
syscall
35.2.
unsafe
36.
加密与安全
36.1.
crypto 加密原语
36.2.
tls TLS协议
37.
网络编程
37.1.
网络基础
37.2.
高级网络编程
37.3.
并发网络编程
37.4.
网络安全
37.5.
网络编程工具与库
37.6.
滑动窗口
37.7.
netpoll
38.
CGO
38.1.
CGO工作原理
38.2.
go 调用c函数
38.3.
c 调用go函数
38.4.
CGO的数据类型
38.5.
CGO中的字符串处理
38.6.
CGO的错误处理
38.7.
CGO的并发
38.8.
CGO的性能考量
38.9.
CGO的安全和限制
38.10.
CGO的调试和测试
38.11.
CGO与模块
38.12.
CGO与泛型
38.13.
FFI
39.
内存分配器与GC
39.1.
Go内存管理概述
39.2.
arena
39.3.
Go内存分配机制
39.4.
Go的内存分配器架构
39.5.
mcache: Go的本地内存缓存
39.6.
中心缓存
39.7.
堆内存分配
39.8.
GC
39.9.
GC对内存分配的影响
39.10.
GC与内存分配器的协同
39.11.
内存分配的性能优化
39.12.
内存分配问题的诊断和解决
39.13.
自定义内存分配器
39.14.
内存分配器与系统资源管理
39.15.
内存分配的安全性
40.
插件系统与动态补丁
40.1.
plugin
41.
发布
41.1.
编译与构建
41.2.
混淆
41.3.
embed 包嵌入
41.4.
容器化分化
41.5.
压缩和归档
41.6.
签名和验证
41.7.
软件仓库
42.
Plan9汇编
42.1.
Plan9 汇编基础
42.2.
Plan9 汇编语法
42.3.
Plan9的系统架构与汇编
42.4.
编写Plan9程序
42.5.
Plan9汇编中的数据处理
43.
数据结构与算法
43.1.
数组
43.1.1.
动态数组
43.1.2.
多维数组
43.1.3.
稀疏数组
43.1.4.
环形缓冲区
43.1.5.
优先队列
43.1.6.
双端队列
43.2.
链表
43.2.1.
单向链表
43.2.2.
双端队列
43.2.3.
栈
43.2.4.
队列
43.2.5.
跳表
43.2.6.
静态链表
43.2.7.
动态数组
43.2.8.
环形缓冲区
43.2.9.
哈希链表
43.3.
栈
43.4.
队列
43.5.
哈希表
43.6.
树
43.6.1.
二叉树
43.6.2.
完全二叉树
43.6.3.
满二叉树
43.6.4.
二叉搜索树
43.6.5.
平衡二叉树
43.6.6.
AVL
43.6.7.
红黑树
43.6.8.
B树
43.6.9.
B+树
43.6.10.
前缀树
43.6.11.
后缀树
43.6.12.
霍夫曼树
43.6.13.
最小生成树
43.6.14.
最大生成树
43.6.15.
堆
43.6.16.
线段树
43.6.17.
树堆
43.6.18.
表达式树
43.6.19.
四叉树
43.6.20.
八叉树
43.6.21.
K-D树
43.6.22.
二叉堆
43.6.23.
二叉搜索堆
43.6.24.
伸展树
43.6.25.
树状数组
43.6.26.
Link/Cut Tree
43.6.27.
FibonacciHeap
43.6.28.
Treap
43.6.29.
后缀数组
43.6.30.
动态树
43.6.31.
区间树
43.6.32.
隐式线段树
43.6.33.
笛卡尔树
43.7.
图
43.8.
搜索
43.9.
排序
43.9.1.
冒泡排序
43.9.2.
选择排序
43.9.3.
插入排序
43.9.4.
归并排序
43.9.5.
快速排序
43.9.6.
堆排序
43.9.7.
稳定排序
43.9.8.
希尔排序
43.9.9.
计数排序
43.9.10.
基数排序
43.9.11.
桶排序
43.9.12.
比特位排序
43.9.13.
蒂姆排序
43.9.14.
鸡尾酒排序
43.9.15.
葛尼玛排序
43.9.16.
梳排序
43.9.17.
循环排序
43.9.18.
鸽巢排序
43.9.19.
博戈排序
43.9.20.
树排序
43.9.21.
平滑排序
43.9.22.
双基快速排序
43.9.23.
奇偶排序
43.9.24.
闪排序
43.9.25.
分配排序
43.9.26.
双向冒泡排序
43.9.27.
重建排序
43.9.28.
图书馆排序
43.9.29.
猴子排序
43.9.30.
奇奇排序
43.9.31.
班尼奥排序
43.9.32.
睡眠排序
43.9.33.
波纹排序
43.9.34.
二叉插入排序
43.9.35.
裸基数排序
43.9.36.
平滑排序
43.9.37.
潘卡克排序
43.9.38.
桥接排序
43.9.39.
平行堆排序
43.9.40.
组排序
43.9.41.
奇偶奇归并排序
43.9.42.
位图排序
43.9.43.
区间树排序
43.9.44.
抛物线排序
43.9.45.
卡塔兰排序
43.9.46.
顺序树排序
43.9.47.
分层快速排序
43.10.
分治
43.11.
回溯
43.12.
动态规划
43.13.
贪心
44.
Redis 与Go
44.1.
字符串
44.2.
哈希
44.3.
列表
44.4.
集合
44.5.
有序集合
44.6.
位图
44.7.
HyperLogLog
44.8.
地理空间数据
44.9.
流
45.
分布式系统
46.
中间件
46.1.
消息队列系统
46.1.1.
Apache Kafka
46.1.2.
RabbitMQ
46.1.3.
Apache ActiveMQ
46.1.4.
Amazon SQS
46.2.
流处理平台
46.2.1.
流处理平台概述
46.2.2.
Apache Flink
46.2.3.
Apache Storm
46.2.4.
Apache Samza
46.2.5.
Google Dataflow
46.3.
数据库和数据存储系统
46.3.1.
数据库和数据存储系统概述
46.3.2.
Apache Pulsar
46.3.3.
Redis Streams
46.3.4.
Amazon Kinesis
46.3.5.
Apache HBase
46.4.
日志处理系统
46.4.1.
日志处理系统概述
46.4.2.
Elasticsearch
46.4.3.
Logstash
46.4.4.
Fluentd
46.5.
事件流平台
46.5.1.
事件流平台概述
46.5.2.
NATS
46.5.3.
Apache Kafka Streams
47.
web开发
48.
Gin框架
48.1.
Gin 的基本使用
48.2.
路由机制
48.3.
中间件机制
48.4.
请求处理机制
48.5.
响应处理机制
48.6.
错误处理机制
48.7.
路由性能优化
48.8.
配置管理
48.9.
测试与调试
48.10.
源码解析
48.11.
高级应用
48.12.
扩展
Light
Rust
Coal
Navy
Ayu
Hello Golang
读写锁