注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计GO语言编程从入门到实践

GO语言编程从入门到实践

GO语言编程从入门到实践

定 价:¥108.00

作 者: 黄永祥 著
出版社: 清华大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787302603894 出版时间: 2022-06-01 包装: 平装
开本: 16开 页数: 424 字数:  

内容简介

  本书是一本来自一线开发者的Go语言编程入门书,深入浅出地讲述了Go语言的语法特性和编程实践,全书分为基础和项目两部分,基础部分主要介绍Go语言开发环境的搭建、基础语法、数据类型、指针、内置容器、函数、结构体、接口、反射、并发编程、包的应用与管理、目录与文件管理、时间管理、数据库编程等,项目部分主要介绍网页自动化测试程序、网络爬虫程序、网络信息反馈网站的开发实践,此外,还介绍了Go语言程序的编译方法。本书各章还提供了近20个动手练习小项目,便于读者边学边练,迅速提升编程技能。 本书通俗易懂,体系完备,注重实践,适合对Go语言感兴趣的各层次读者使用。

作者简介

  黄永祥,资深软件工程师,从业10年,先后从事过系统开发和自动化开发,精通(B/S和C/S)自动化测试技术,尤其是对Go语言、Python语言及Gin、Django等Web框架拥有丰富的经验。已出版《实战Python网络爬虫》《Django Web应用开发实战》《精通Python自动化编程》等多部IT技术图书。

图书目录

第1章 认识Go语言 1
1.1 Go语言简介 1
1.2 Go语言的优势与特性 2
1.3 在Windows下安装Go 3
1.4 在Linux下安装Go 6
1.5 在macOS下安装Go 8
1.6 安装GoLand 9
1.7 搭建GoLand环境 10
1.8 第一个Go程序“Hello World” 11
1.9 动手练习:编程实现人机交互 12
1.10 小结 14
第2章 基础语法 15
2.1 关键字与标识符 15
2.1.1 关键字 15
2.1.2 标识符命名规范 17
2.1.3 空白标识符 18
2.1.4 预声明标识符 19
2.1.5 导出标识符 21
2.1.6 唯一标识符 22
2.2 变量与常量 22
2.2.1 变量定义与赋值 22
2.2.2 常量与iota 24
2.3 运算符的使用 26
2.3.1 算术运算符 26
2.3.2 关系运算符 27
2.3.3 赋值运算符 28
2.3.4 逻辑运算符 30

2.3.5 位运算符 31
2.3.6 其他运算符 33
2.3.7 运算符优先级 33
2.4 代码注释 34
2.5 动手练习:编程实现个人健康评测 35
2.6 小结 36
第3章 数据类型 38
3.1 整型的取值范围 38
3.2 浮点类型与精度丢失 40
3.3 复数的计算 42
3.4 布尔型的应用 43
3.5 ASCII与Unicode编码 44
3.6 字符类型 45
3.7 字符串操作 45
3.7.1 字符串与转义符 46
3.7.2 字符串格式化 47
3.7.3 字符串拼接 49
3.7.4 获取字符串长度 50
3.7.5 遍历字符串 51
3.7.6 字符位置与截取 52
3.7.7 字符串分割 53
3.7.8 字符串替换 54
3.8 转换数据类型 55
3.8.1 整型与浮点型 55
3.8.2 整型与字符串 56
3.8.3 浮点型与字符串 57
3.9 动手练习:编程实现在线客服热线 59
3.10 小结 61
第4章 流程控制 62
4.1 if的条件判断 62
4.2 if的多层嵌套 64
4.3 switch的多条件分支 65
4.4 for的循环遍历 69
4.5 for-range获取键值 70
4.6 break越级终止循环 71
4.7 continue跳过本次循环 72
4.8 goto跳到指定代码 73
4.9 动手练习:编程实现简易计算器 74
4.10 小结 77
第5章 指针 78
5.1 指针的概念 78
5.2 指针定义与空指针 79
5.3 指针赋值与取值 81
5.4 切片指针 83
5.5 指针的指针 86
5.6 动手练习:编程实现彩票36选7 87
5.7 小结 90
第6章 内置容器 91
6.1 数组 91
6.1.1 数组定义与操作 91
6.1.2 数组初始化定义 92
6.1.3 多维数组 93
6.2 切片 95
6.2.1 切片定义与操作 95
6.2.2 新增切片元素 97
6.2.3 截取切片元素 98
6.2.4 复制切片 100
6.2.5 切片长度与容量 101
6.3 集合 102
6.3.1 集合定义与操作 102
6.3.2 删除集合元素 104

6.4 动手练习:编程实现集合与
JSON互换 104
6.5 列表 107
6.5.1 列表定义 107
6.5.2 列表元素操作 108
6.5.3 遍历列表元素 110
6.6 动手练习:编程实现产品抽样
检测 112
6.7 小结 114
第7章 函数 116
7.1 函数定义与调用 116
7.2 不固定参数数量 119
7.3 函数以变量表示 120
7.4 没有名字的函数 121
7.5 引用外部变量的函数 122
7.6 函数自身调用 123
7.7 动手练习:编程实现创建文件
后缀名 124
7.8 小结 126
第8章 结构体 127
8.1 Go的“面向对象” 127
8.2 结构体定义与实例化 128
8.3 指针方式的实例化 130
8.4 结构体标签 131
8.5 匿名结构体与匿名成员 133
8.6 结构体嵌套 134
8.7 自定义构造函数 136
8.8 结构体方法:指针与值接收者 138
8.9 动手练习:编程实现结构体与
JSON互换 140
8.10 动手练习:编程实现多键索引
查询数据 142
8.11 小结 145

第9章 接口 147
9.1 接口定义与使用 147
9.2 鸭子类型 150
9.3 多态与工厂函数 152
9.4 接口的自由组合 153
9.5 任意数据类型的空接口 156
9.6 接口的类型断言 158
9.7 动手练手:编程实现营救村民
游戏 161
9.8 小结 166
第10章 反射 168
10.1 什么是反射 168
10.2 第一定律:接口变量转反射
变量 169
10.3 第二定律:反射变量转接口
变量 170
10.4 第三定律:修改反射变量的值 171
10.5 反射的类型与种类 173
10.6 切片与反射 175
10.7 集合与反射 177
10.8 结构体与反射 180
10.9 指针与反射 187
10.10 函数与反射 190
10.11 动手练习:编程实现对象序列化
处理 192
10.12 小结 193
第11章 并发编程 194
11.1 异步的概念 194
11.2 Goroutine 195
11.3 函数创建Goroutine 197
11.4 匿名函数创建Goroutine 199
11.5 通道 200
11.6 无缓冲通道 202
11.7 带缓冲通道 204
11.8 关闭通道读取数据 205
11.9 Select处理多通道 207
11.10 sync同步等待 208
11.11 sync加锁机制 210
11.12 sync.Map的应用 214
11.13 动手练习:编程模拟餐馆经营
场景 219
11.14 小结 221
第12章 语法特性 223
12.1 panic触发宕机 223
12.2 defer延时执行 224
12.3 recover宕机时恢复执行 225
12.4 值类型、引用类型与深浅拷贝 226
12.5 类型别名与自定义 229
12.6 new和make的区别 231
12.7 泛型的概念与应用 234
12.8 动手练习:编程实现出租车费用
计算 236
12.9 小结 238
第13章 包的应用与管理 239
13.1 常用内置包 239
13.2 包命名与导入 240
13.3 包的重命名 242
13.4 无包名调用 242
13.5 初始化函数init()与空导入 243
13.6 包的自定义与使用 245
13.7 包管理工具go mod 246
13.8 第三方包下载与使用 249
13.9 动手练习:编程实现排序算法 251
13.10 小结 255
第14章 目录与文件处理 257
14.1 使用os实现系统操作 257
14.2 使用path获取路径信息 262
14.3 使用os读写文件 267
14.4 使用io/ioutil读写文件 270
14.5 使用bufio读写文件 272
14.6 使用encoding/csv读写CSV文件 275
14.7 使用encoding/json读写
JSON文件 278
14.8 第三方包读写Excel文件 280
14.9 动手练习:编程实现学生管理
系统 283
14.10 小结 286
第15章 时间处理 287
15.1 时间戳 287
15.2 结构体Time 289
15.3 字符串格式化 290
15.4 时间类型的相互转换 292
15.5 时间计算操作 293
15.6 延时、超时与定时 297
15.7 动手练习:编程实现个人
备忘录 300
15.8 小结 302
第16章 数据库编程 304
16.1 搭建SQLite运行环境 304
16.2 安装与使用MySQL 306
16.3 安装与使用MongoDB 309
16.4 安装与使用Redis 312
16.5 go-sqlite3读写SQLite 314
16.6 go-sql-driver/mysql读写MySQL 317
16.7 mongo-driver读写MongoDB 320
16.8 go-redis读写Redis 325
16.9 ORM框架:Gorm 330
16.10 动手练习:编程实现员工管理
系统 335
16.11 小结 337

第17章 Go项目——网页自动化测试
程序开发 339
17.1 了解自动化工具Selenium 339
17.2 安装Selenium 340
17.3 使用浏览器查找元素 342
17.4 浏览器配置与启动 345
17.5 网页元素定位 349
17.6 网页元素操作 353
17.7 浏览器常用操作 356
17.8 网页加载等待 358
17.9 iframe与标签页切换 360
17.10 Cookie读写 363
17.11 动手练习:编程实现爬取
BOSS直聘招聘数据 365
17.12 小结 370
第18章 Go项目——网络爬虫程序
开发 372
18.1 HTTP与HTTPS 372
18.2 请求头 374
18.3 使用浏览器分析网站 375
18.4 使用net/http发送请求 377
18.5 转码与HTML解析 379
18.6 选择数据存储方式 382
18.7 动手练习:编程实现爬取
电影TOP100榜单 383
18.8 小结 388
第19章 Go项目——网络编程应用 389
19.1 TCP和UDP的区别 389
19.2 创建TCP应用 390
19.3 创建UDP应用 393
19.4 创建HTTP服务应用 396
19.5 httprouter扩展路由 399

19.6 多种响应处理方式 401
19.7 HTML模板引擎 404
19.8 网站项目:信息反馈平台的开发 410
19.8.1 网站功能需求 410
19.8.2 项目架构设计 411
19.8.3 搭建开发环境 412
19.8.4 定义模型与路由 412
19.8.5 编写模板文件 415
19.8.6 网站运行与测试 417
19.9 小结 419
第20章 编译与运行 420
20.1 run与build的区别 420
20.2 单文件编译 421
20.3 同包多文件编译 422
20.4 不同包多文件编译 422
20.5 编译参数说明 423
20.6 小结 424

本目录推荐