前言

March 25, 2023 · View on GitHub

第一章 Go安装与运行

1.1 Go 安装

1.2 Go 语言开发工具

第二章 数据类型

2.1 基本数据类型

2.2 Unicode(UTF-8)

2.3 复数

第三章 变量

3.1 变量以及声明

3.2 零值nil

第四章 常量

4.1 常量以及iota

第五章 作用域

5.1 作用域

第六章 约定和惯例

6.1 可见性规则

6.2 命名规范以及语法惯例

6.3 注释

第七章 代码结构化

7.1 包的概念

7.2 包的导入

7.3 标准包

7.4 从GitHub安装包

7.5 导入外部安装包

7.6 包的初始化

第八章 Go项目开发与编译

8.1 项目结构

8.2 使用godoc

8.3 Go程序的编译

第九章 运算符

9.1 内置运算符

9.2 运算符优先级

9.3 几个特殊运算符

第十章 string

10.1 字符串介绍

10.2 字符串拼接

10.3 有关string处理

第十一章 数组(Array)

11.1 数组(Array)

第十二章 切片(slice)

12.1 切片(slice)

12.2 切片重组(reslice)

12.3 陈旧的(Stale)Slices

第十三章 字典(Map)

13.1 字典(Map)

13.2 range语句中更新引用元素的值

第十四章 流程控制

14.1 switch 语句

14.2 select控制

14.3 for循环

14.4 for-range 结构

第十五章 错误处理

15.1 错误类型

15.2 panic

15.3 recover:从 panic 中恢复

15.4 有关于defer

第十六章 函数

16.1 函数分类

16.2 函数调用

16.3 内置函数

16.4 递归与回调

16.5 匿名函数

16.6 闭包函数

16.7 变参函数

第十七章 type关键字

17.1 type

第十八章 struct 结构体

18.1 结构体(struct)

18.2 结构体特性

18.3 匿名成员

18.4 嵌入与聚合

18.5 命名冲突

第十九章 接口

19.1 接口是什么

19.2 接口嵌套

19.3 类型断言

19.4 接口与动态类型

19.5 接口的提取

19.6 接口的继承

第二十章 方法

20.1 方法的定义

20.2 函数和方法的区别

20.3 指针或值方法

20.4 内嵌类型的方法提升

第二十一章 协程(goroutine)

21.1 并发

21.2 goroutine

第二十二章 通道(channel)

22.1 通道(channel)

第二十三章 同步与锁

23.1 同步锁

23.2 读写锁

23.3 sync.WaitGroup

23.4 sync.Once

23.5 sync.Map

第二十四章 指针和内存

24.1 指针

24.2 new() 和 make() 的区别

24.3 垃圾回收和 SetFinalizer

第二十五章 面向对象

25.1 Go 中的面向对象

25.2 多重继承

第二十六章 测试

26.1 单元测试

26.2 基准测试

26.3 分析并优化 Go 程序

26.4 用 pprof 调试

第二十七章 反射(reflect)

27.1 反射(reflect)

27.2 反射结构体

第二十八章 unsafe包

28.1 unsafe 包

28.2 指针运算

第二十九章 排序(sort)

29.1 sort包介绍

29.2 自定义sort.Interface排序

29.3 sort.Slice

第三十章 os包

30.1 启动外部命令和程序

30.2 os/signal 信号处理

第三十一章 文件操作与I/O

31.1 文件系统

31.2 I/O读写

31.3 ioutil包

31.4 bufio包

第三十二章 fmt包与日志log包

32.1 fmt包格式化I/O

32.2 格式化verb应用

32.3 日志log包

第三十三章 Socket网络

33.1 Socket基础知识

33.2 TCP 与 UDP

第三十四章 命令行flag包

34.1 命令行

34.2 flag包

第三十五章 模板

35.1 text/template

35.2 html/template

35.3 模板语法

第三十六章 net/http包

36.1 Request

36.2 Response

36.3 client

36.4 server

36.5 自定义处理器(Custom Handlers)

36.6 将函数作为处理器

36.7 中间件Middleware

36.8 静态站点

第三十七章 context包

37.1 context包

37.2 context应用

第三十八章 数据序列化

38.1 序列化与反序列化

38.2 JSON数据格式

38.3 Protocol Buffer数据格式

第三十九章 MySQL数据库

39.1 database/sql包

39.2 MySQL数据库操作

第四十章 LevelDB与BoltDB

40.1 LevelDB

40.2 BoltDB

第四十一章 网络爬虫

41.1 Colly网络爬虫框架

41.2 goquery HTML解析

第四十二章 WEB框架(Gin)

42.1 有关于Gin

42.2 Gin实际应用