首页 > 图书中心 > Go语言从入门到精通

目录

第1篇 基础知识

第1章 初识Go语言 2

视频讲解:24分钟

1.1 Go语言简介 2

1.1.1 为什么要学习Go语言 2

1.1.2 Go语言的特性 3

1.1.3 Go语言与并发 3

1.1.4 Go语言的应用 4

1.2 Go语言开发环境 4

1.2.1 下载Go语言开发包 4

1.2.2 安装Go语言开发包 6

1.2.3 配置Go语言环境变量 8

1.2.4 测试Go语言开发包是否正常运行 11

1.3 Go语言开发工具 11

1.3.1 下载VS Code 12

1.3.2 安装VS Code 13

1.3.3 汉化VS Code 15

1.3.4 在VS Code中安装Go语言插件 16

1.4 第一个Go语言程序 18

1.4.1 创建Go项目和Go文件 18

1.4.2 编写第一个Go语言程序 24

1.4.3 运行Go语言程序 24

1.5 要点回顾 27

第2章 Go语言基础 28

视频讲解:17分钟

2.1 关键字和标识符 28

2.1.1 关键字 28

2.1.2 标识符命名规则 29

2.1.3 空白标识符 30

2.1.4 导出标识符 30

2.1.5 预定义标识符 32

2.2 程序的基本结构 32

2.3 作用域 33

2.4 注释 34

2.5 要点回顾 34

第3章 Go语言基本数据类型与运算符 35

视频讲解:36分钟

3.1 Go语言变量 35

3.1.1 变量的声明 35

3.1.2 变量的初始化 37

3.1.3 匿名变量 39

3.1.4 变量的作用域 39

3.2 基础类型 41

3.2.1 数值类型 41

3.2.2 布尔类型 42

3.2.3 字符串类型及其操作 43

3.3 类型转换 48

3.4 自定义类型 50

3.5 有类型的常量 51

3.6 枚举 52

3.7 运算符 53

3.7.1 算术运算符 53

3.7.2 关系运算符 53

3.7.3 逻辑运算符 54

3.7.4 位运算符 54

3.7.5 复合赋值运算符 55

3.7.6 运算符优先级 57

3.8 要点回顾 58

第4章 流程控制 59

视频讲解:28分钟

4.1 条件判断语句 59

4.1.1 if语句 59

4.1.2 switch语句 64

4.2 循环语句 68

4.2.1 for循环 68

4.2.2 for-range循环 71

4.2.3 循环嵌套 73

4.3 循环控制语句 74

4.3.1 break语句 74

4.3.2 continue语句 75

4.3.3 goto语句 77

4.4 要点回顾 77

第5章 复合数据类型 78

视频讲解:38分钟

5.1 数组 78

5.1.1 数组的声明 78

5.1.2 数组的初始化 79

5.1.3 数组元素的访问 81

5.1.4 二维数组 82

5.2 切片 84

5.2.1 定义切片 85

5.2.2 len()函数和cap()函数 86

5.2.3 append()函数 87

5.2.4 copy()函数 88

5.2.5 空切片 89

5.2.6 切片的访问 89

5.2.7 删除切片 90

5.3 映射 91

5.3.1 定义映射 91

5.3.2 遍历映射 93

5.3.3 获取映射元素 94

5.3.4 删除映射元素 94

5.4 要点回顾 95

第2篇 进阶提高

第6章 函数 98

视频讲解:46分钟

6.1 函数定义和调用 98

6.1.1 函数的定义 98

6.1.2 函数的调用 99

6.2 函数的参数 100

6.2.1 形式参数和实际参数 100

6.2.2 值传递和引用传递 102

6.2.3 可变参数 103

6.2.4 传递数组 104

6.2.5 传递切片 105

6.3 函数的返回值 105

6.3.1 返回单个值 105

6.3.2 返回多个值 107

6.4 函数的嵌套调用 109

6.5 函数变量 110

6.6 匿名函数 111

6.6.1 在定义时直接调用 112

6.6.2 将匿名函数赋值给变量 112

6.6.3 作为回调函数 113

6.7 闭包 114

6.8 递归函数 115

6.9 函数的延迟调用 117

6.9.1 多个defer语句的执行顺序 117

6.9.2 延迟函数的参数 117

6.9.3 匿名函数的延迟调用 118

6.10 要点回顾 120

第7章 指针 121

视频讲解:20分钟

7.1 关于指针 121

7.1.1 什么是指针 121

7.1.2 “取地址”操作 122

7.2 指针的使用方法 123

7.2.1 声明指针变量 123

7.2.2 初始化指针变量 123

7.2.3 空指针 125

7.2.4 获取指针指向的变量的值 126

7.2.5 修改指针指向的变量的值 127

7.3 指针的其他应用 129

7.3.1 指针数组 129

7.3.2 指向指针的指针变量 130

7.4 要点回顾 131

第8章 结构体 132

视频讲解:26分钟

8.1 结构体基本用法 132

8.1.1 定义结构体 132

8.1.2 实例化结构体 133

8.2 匿名成员和匿名结构体 135

8.2.1 匿名成员 135

8.2.2 匿名结构体 136

8.3 结构体的嵌套 137

8.4 构造函数 141

8.4.1 不带参数的构造函数 141

8.4.2 带参数的构造函数 142

8.4.3 为嵌套的结构体使用构造函数 142

8.5 方法 143

8.5.1 值接收者方法 143

8.5.2 指针接收者方法 144

8.6 要点回顾 147

第9章 接口 148

视频讲解:27分钟

9.1 接口的声明 148

9.2 接口的实现 149

9.3 类型断言 150

9.4 Interface接口 152

9.5 空接口类型 155

9.5.1 使用空接口保存值 155

9.5.2 从空接口中获取值 157

9.5.3 比较空接口保存的值 158

9.6 类型分支 159

9.7 接口的嵌套 160

9.8 要点回顾 162

第10章 错误处理 163

视频讲解:22分钟

10.1 error接口类型 163

10.2 自定义错误信息 164

10.2.1 使用errors包中的New函数 164

10.2.2 使用error接口自定义Error()函数 165

10.2.3 使用fmt包的Errorf()函数 166

10.3 Error嵌套 168

10.3.1 基本用法 168

10.3.2 Unwrap()函数 168

10.3.3 Is()函数 169

10.3.4 As()函数 169

10.4 宕机和宕机恢复 170

10.4.1 宕机(panic) 170

10.4.2 宕机恢复(recover) 172

10.5 要点回顾 174

第11章 并发编程 175

视频讲解:31分钟

11.1 并发概述 175

11.2 goroutine 176

11.2.1 为普通函数创建goroutine 176

11.2.2 为匿名函数创建goroutine 179

11.3 channel(通道) 180

11.3.1 通道的声明和创建 181

11.3.2 通道的基本操作 182

11.3.3 单向通道 184

11.3.4 无缓冲的通道 185

11.3.5 有缓冲的通道 186

11.4 使用select处理通道 187

11.5 竞争状态 188

11.6 死锁、活锁和饥饿 189

11.6.1 死锁 189

11.6.2 活锁 190

11.6.3 饥饿 190

11.7 加锁机制 190

11.8 要点回顾 193

第3篇 高级应用

第12章 包管理 196

视频讲解:16分钟

12.1 包的基本概念 196

12.1.1 包的导入 197

12.1.2 包的导入路径 197

12.2 GOPATH 198

12.3 常用内置包 199

12.4 包的基本使用 201

12.4.1 package(创建包) 201

12.4.2 在代码中使用其他代码 202

12.5 自定义包 203

12.6 包管理工具 204

12.7 要点回顾 205

第13章 标准库 206

视频讲解:26分钟

13.1 IO操作 206

13.1.1 io库 206

13.1.2 os库 207

13.1.3 ioutil库 208

13.1.4 bufio库 210

13.1.5 errors库 211

13.2 记录日志 212

13.2.1 log库中的函数 212

13.2.2 标准log配置 213

13.2.3 日志前缀配置 214

13.2.4 把日志输出到文件中 215

13.3 解析JSON 215

13.3.1 解码JSON 215

13.3.2 编码JSON 216

13.4 时间和日期 217

13.4.1 时间的获取 217

13.4.2 操作时间的函数 219

13.4.3 时间格式化 220

13.4.4 解析格式化的时间字符串 220

13.5 要点回顾 221

第14章 编译与测试工具 222

视频讲解:18分钟

14.1 go build命令 222

14.2 go clean命令 224

14.3 go run命令 224

14.4 go fmt命令 225

14.5 go install命令 226

14.6 go get命令 227

14.7 go generate命令 227

14.8 go test命令 228

14.8.1 单元测试 228

14.8.2 基准测试 229

14.9 go pprof命令 230

14.10 要点回顾 230

第15章 反射 231

视频讲解:25分钟

15.1 反射概述 231

15.1.1 reflect.TypeOf()函数 231

15.1.2 reflect.ValueOf()函数 232

15.2 反射三定律 233

15.2.1 接口变量转反射对象 233

15.2.2 反射对象转接口变量 234

15.2.3 修改反射对象的值 235

15.3 反射的类型与种类 237

15.4 Go语言结构体标签 239

15.4.1 结构体标签的使用 239

15.4.2 结构体标签的获取 240

15.5 通过类型信息创建实例 241

15.6 通过反射调用函数 242

15.7 要点回顾 243

第16章 MySQL数据库编程 244

视频讲解:18分钟

16.1 下载、安装MySQL 244

16.1.1 下载MySQL 244

16.1.2 安装MySQL 246

16.1.3 启动MySQL 253

16.2 下载go-mysql驱动程序 253

16.3 操作MySQL数据库 255

16.3.1 连接MySQL数据库 256

16.3.2 新建数据表 257

16.3.3 插入数据 258

16.3.4 查询数据 259

16.3.5 修改数据 261

16.3.6 删除数据 262

16.4 要点回顾 263

第17章 文件处理 264

视频讲解:23分钟

17.1 文本文件的写入、追加、读取操作 264

17.2 二进制文件的写入、读取操作 267

17.2.1 gob格式 267

17.2.2 自定义二进制格式 269

17.3 JSON文件的写入、读取操作 271

17.4 XML文件的写入、读取操作 273

17.5 zip文件的写入、读取操作 275

17.6 文件锁操作 277

17.7 要点回顾 279

第18章 网络编程 280

视频讲解:15分钟

18.1 Socket编程 280

18.1.1 什么是Socket 281

18.1.2 Dial()函数 281

18.2 TCP Socket 282

18.2.1 建立TCP连接 283

18.2.2 实现交互通信 285

18.3 UDP Socket 287

18.3.1 UDP服务器端 287

18.3.2 UDP客户端 288

18.4 HTTP编程 289

18.4.1 HTTP客户端 289

18.4.2 HTTP服务端 290

18.5 要点回顾 291

第4篇 项目实战

第19章 Go语言在爬虫中的应用 294

视频讲解:21分钟

19.1 需求分析 294

19.2 程序设计 294

19.2.1 程序目标 294

19.2.2 功能结构 295

19.2.3 业务流程 295

19.3 技术准备—go-colly框架 296

19.3.1 go-colly框架的特性 296

19.3.2 go-colly框架的下载 296

19.3.3 go-colly框架的实现过程 297

19.3.4 go-colly框架的应用实例 298

19.4 抓取指定连接的网页内容 300

19.5 将抓取的网页内容存储在文件中 301

19.6 把爬虫程序设置成Web服务 303

19.7 要点回顾 306

版权所有(C)2023 清华大学出版社有限公司 京ICP备10035462号 京公网安备11010802042911号

联系我们 | 网站地图 | 法律声明 | 友情链接 | 盗版举报 | 人才招聘