-
内容大纲
本书是一本Go语言入门书,全书共分为三部分。第一部分讲解Go语言基础知识,包括变量与简单类型、数组、切片、流程控制、字典、函数、结构体与方法、接口等,可以帮助读者快速掌握Go语言的基本程序结构。第二部分讲解Go语言高效并发相关知识,包括协程与通道、并发资源、包管理和测试等,让读者对Go语言层面的并发支持有更深入的理解。第三部分讲解Go语言项目实战,包括Gin框架、生活点评项目实战、账户管理系统实战,以及OAuth 2.0的授权协议等。通过实战,把前面讲解的知识点运用起来,帮助读者快速上手,积累项目经验。
本书适合具有其他语言基础,想学习Go语言的开发者阅读。即使没有任何编程经验,也能通过学习本书快速掌握Go语言。 -
作者介绍
欢喜,微信公众号 “面向加薪学习” 的作者,B站 “面向加薪学习”的作者, “GoCn” 小组成员,在社区连载了一系列 Go 语言相关的技术文章,并在B站发布了一系列Go语言相关视频,均广受欢迎。拥有多年国内一线互联网公司从业经验,主导全栈项目,擅长Go、Java、Vue、移动开发(Flutter)和小程序(Taro),拥有丰富的大型网站架构经验。 -
目录
第一部分 基础知识
第1章 起步
1.1 源代码与程序
1.2 变量的命名
1.3 指针
1.4 包和文件
1.5 变量的生命周期
1.6 作用域
第2章 变量与简单类型
2.1 运行hello_world.go
2.2 变量
2.3 字符串
2.3.1 修改字符串的大小写
2.3.2 合并(拼接)字符串
2.3.3 使用制表符或换行符添加空白
2.3.4 删除空格
2.4 数字
2.4.1 整数
2.4.2 浮点数
2.4.3 使用strconv.Itoa方法避免类型错误
2.5 注释
2.6 小结
第3章 数组
3.1 数组简介
3.2 初始化数组元素的3种方式
3.3 访问数组元素
3.4 索引是从0而不是从1开始的
3.5 使用数组中的各个值
3.6 遍历数组
3.7 循环
3.8 修改数组中的元素
3.9 使用列表时应避免索引错误
3.10 小结
第4章 切片
4.1 切片简介
4.1.1 创建切片
4.1.2 访问切片元素
4.1.3 遍历切片元素
4.1.4 复制切片
4.2 修改、添加和删除元素
4.2.1 修改切片元素
4.2.2 在切片中添加元素
4.2.3 从切片中删除元素
4.3 使用切片时应避免索引错误
4.4 遍历切片时容易犯的错误
4.5 小结
第5章 流程控制
5.1 if语句
5.2 条件测试
5.2.1 检查是否相等
5.2.2 比较数字
5.2.3 检查多个条件
5.2.4 检查在切片中是否包含特定值
5.2.5 布尔表达式
5.2.6 if-else 结构
5.3 switch语句
5.4 循环语句
5.5 小结
第6章 字典
6.1 字典简介
6.2 创建字典
6.3 使用字典
6.3.1 访问字典中的值
6.3.2 添加键值对
6.3.3 修改字典中的值
6.3.4 删除键值对
6.4 遍历字典
6.4.1 在字典中嵌入切片
6.4.2 在字典中嵌入字典
6.5 避免遍历
6.6 小结
第7章 函数
7.1 定义函数
7.1.1 向函数传递信息
7.1.2 实际参数和形式参数
7.1.3 位置实参
7.1.4 传递数组
7.1.5 传递切片
7.1.6 避免实参错误
7.2 返回值
7.2.1 返回简单值
7.2.2 返回字典
7.3 返回多个值
7.4 函数变量
7.5 匿名函数
7.6 闭包
7.7 变长函数
7.8 延迟函数调用
7.9 panic
7.10 recover
7.11 小结
第8章 结构体与方法
8.1 结构体概述
8.2 结构体的使用
8.3 匿名成员与结构体嵌套
8.4 结构体与JSON
8.5 方法
8.6 指针接收者方法
8.7 实参接收者type与*type
8.8 值方法与指针方法的区别
8.9 方法与表达式
8.10 小结
第9章 接口
9.1 接口的定义及使用
9.2 非侵入式接口
9.3 使用指针接收者实现接口
9.4 接口的嵌套
9.5 接口值
9.6 error接口
9.7 类型断言
9.8 类型分支
9.9 动态类型、动态值和静态类型
9.10 小结
第二部分 高效并发
第10章 协程与通道
10.1 并发
10.2 协程并发模型
10.3 goroutine(协程)的使用
10.4 channel(通道)
10.5 channel进阶
10.6 单向channel
10.7 无缓冲channel
10.8 缓冲channel
10.9 select
10.10 关闭channel
10.11 小结
第11章 并发资源
11.1 竞态
11.2 sync.Mutex与sync.RWMutex
11.3 条件变量
11.4 原子操作
11.5 WaitGroup类型与Once类型
11.6 context.Context类型
11.7 小结
第12章 包管理
12.1 go mod
12.2 go mod中的命令
12.3 小结
第13章 测试
第14章 反射
14.1 反射简介
14.2 动态调用无参方法
14.3 动态调用有参方法
14.4 动态struct tag解析
14.5 对类型进行转换和赋值
14.6 使用Kind与switch处理不同分支
14.7 判断是否实现了某接口
第三部分 项目实战
第15章 Gin框架
15.1 HTTP简介
15.2 Gin框架简介
15.3 RESTful
15.4 路由参数
15.5 URL查询参数的获取
15.6 接收数组和map
15.7 获取Form表单参数
15.8 JSON渲染输出
第16章 生活点评项目实战
16.1 总体需求分析
16.2 开发精要
16.3 接口设计
16.4 餐厅详情模块
16.5 数据库访问层
16.6 服务层
16.7 路由和方法
16.8 团购下单模块
16.9 数据库访问层
16.10 团购下单——服务层
16.11 团购下单——路由和方法
16.12 小结
第17章 账户管理系统实战
17.1 启动一个简单的RESTful服务器
17.2 Viper
17.3 日志追踪
17.4 定义错误码
17.5 创建账户
17.6 删除账户
17.7 更新账户
17.8 账户列表
17.9 根据账户名称查询用户信息
17.10 OAuth 2.0简介
17.11 OAuth 2.0的四种授权模式
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...