新書推薦:

《
春秋大义:中国传统语境下的皇权与学术(新版)
》
售價:HK$
96.8

《
女人们的谈话(奥斯卡金像奖最佳影片提名、最佳改编剧本奖 原著!)
》
售價:HK$
61.6

《
忧郁的秩序:亚洲移民与边境管控的全球化(共域世界史)
》
售價:HK$
140.8

《
一周一堂经济学课:为了更好地理解这个世界
》
售價:HK$
107.8

《
慢性胃炎的中医研究 胃
》
售價:HK$
657.8

《
南移:宋代社会中心的转迁
》
售價:HK$
162.8

《
纯粹·水浒江湖:理解中国古代社会的一种另一条线索
》
售價:HK$
101.2

《
肌骨复健实践指南:运动损伤与慢性疼痛
》
售價:HK$
294.8
|
編輯推薦: |
本书是一本基础入门、项目实战及原理剖析三位一体的技术教程,既包括详细的基础知识介绍,又提供了丰富的实际项目开发案例,包括详细的项目开发步骤,每个代码片段都有详细的注释标注和对应的操作说明。本书的基础知识、项目实战及原理剖析部分均提供了完整可运行的代码示例,帮助读者更好地自学全方位的技术体系。
|
內容簡介: |
本书以Go语言为主线,内容循序渐进,采用先实践再理论的学习模式。引导读者渐进式地学习Go语言的相关知识,并对其中的相关内容产生浓厚的兴趣。
本书共19章,从第1章编程语言的前世今生开始,系统性讲解编程语言的时间线及Go语言的诞生历史。第2章环境搭建详细讲解了不同的操作系统搭建Go语言开发环境的过程。第3~19章是Go语言最为核心的内容部分,内容按照从实践到原理循序渐进的过程设计。本书示例代码丰富,实际性和系统性较强,并配有视频讲解,助力读者透彻理解书中的重点、难点。
本书既适合初学者入门,精心设计的案例对于工作多年的开发者也有参考价值,并可作为高等院校和培训机构相关专业的教学参考书。
|
關於作者: |
郭志勇,一个在IT领域摸爬滚打多年的程序员、培训师。掌握多种IT技术,如前端开发、Python语言开发、Go语言开发等。热爱技术交流与分享,其录制的“8小时入门Go语言开发”“Gin框架入门”“Gorm简明教程”“gRPC基础教程”“GoZero零基础教程”等相关Go语言领域基础课程,帮助上万人入门Go语言开发,广受学员好评。
|
目錄:
|
第1章编程的前世今生
1.1编程语言发展史
1.2编程语言时间轴
1.3Go语言发展史
1.3.1Go语言是如何诞生的
1.3.2Go语言的早期团队和演进历程
1.3.3Go语言正式发布并开源
1.4Go语言特点
1.4.1编译型语言和解释型语言
1.4.2Go语言为并发而生
1.4.3Go语言设计理念
1.4.4使用Go语言的项目
1.5学好Go语言的建议
第2章环境搭建(8min)
2.1在Windows系统下搭建Go开发环境
2.1.1SDK简介
2.1.2下载SDK工具包
2.1.3配置Go环境变量
2.1.4检查Go语言环境是否安装成功
2.2Linux系统下搭建Go语言开发环境
2.2.1Linux系统下安装SDK
2.2.2配置Go环境变量
2.3macOS系统下搭建Go语言开发环境
2.4Go语言的开发工具介绍
2.4.1工具介绍
2.4.2工具选择
2.4.3VS Code的安装和使用
2.4.4GoLand的安装和使用
2.5运行第1个程序
2.5.1Go代码结构介绍
2.5.2GoLand中运行Go文件
2.5.3命令行运行Go文件
第3章变量与基本数据类型(46min)
3.1什么是变量
3.2变量的声明、初始化和赋值
3.3常量
3.4局部变量和全局变量
3.5变量可见性
3.6注释
3.6.1注释的格式
3.6.2包注释
3.6.3命令注释
3.6.4变量注释
3.7规范的代码风格
3.8数据类型的基本介绍
3.8.1数字类型
3.8.2浮点数类型
3.8.3字符串类型
3.8.4布尔类型
3.8.5字符类型
3.9扩展——字符编码
3.9.1ASCII第1个编码集合的诞生及发展
3.9.2GBK编码的诞生及发展
3.9.3Unicode编码的诞生
3.9.4UTF系列编码的诞生及发展
3.9.5扩展——乱码之王锟斤拷
3.10基本数据类型的默认值
3.11类型转换
3.11.1显式类型转换
3.11.2隐式类型转换
3.11.3strconv包
3.12输入函数
3.12.1Scanf函数
3.12.2Scanln函数
3.12.3Scan函数
第4章运算符(3min)
4.1运算符基本介绍
4.2赋值运算符
4.3算术运算符
4.4关系运算符
4.5逻辑运算符
4.6位运算符
4.6.1按位与
4.6.2按位或
4.6.3按位异或
4.6.4按位左移
4.6.5按位右移
4.7运算符的优先级
第5章流程控制(26min)
5.1条件判断
5.1.1if单分支
5.1.2ifelse双分支
5.1.3ifelseif多分支
5.1.4if嵌套
5.1.5知识扩展——卫语句
5.2switch语句
5.3循环语句
5.3.1标准for循环
5.3.2while模式的for循环
5.3.3dowhile模式的for循环
5.3.4for range模式的for循环
5.3.5break语句
5.3.6continue语句
5.3.7多重循环
第6章数组、切片、Map(27min)
6.1数组
6.1.1声明数组
6.1.2初始化数组
6.1.3数组索引
6.1.4修改数组元素
6.1.5遍历数组
6.2切片
6.2.1什么是切片
6.2.2切片的创建和初始化
6.2.3nil和空切片
6.2.4为切片中的元素赋值
6.2.5通过切片创建新的切片
6.2.6遍历切片
6.2.7append()函数
6.2.8切片的底层原理
6.3map
6.3.1map的声明与初始化
6.3.2map的增、删、改、查
6.3.3map的底层实现
第7章函数与指针(50min)
7.1函数
7.1.1函数定义
7.1.2函数参数
7.1.3函数返回值
7.1.4匿名函数
7.1.5函数可作为参数
7.1.6函数可作为返回值
7.1.7函数作为变量
7.2特殊的函数
7.2.1main()函数
7.2.2init()函数
7.2.3defer()函数
7.2.4递归函数
7.3指针
7.3.1指针地址和指针类型
7.3.2指针取值
7.3.3空指针
7.3.4new
7.3.5make
第8章结构体与自定义数据类型(29min)
8.1结构体
8.1.1结构体定义
8.1.2结构体实例化
8.1.3结构体方法
8.1.4结构体匿名字段
8.1.5嵌套结构体
8.1.6结构体的“继承”
8.1.7结构体标签
8.1.8结构体内存布局
8.2自定义数据类型与类型别名
8.2.1自定义类型
8.2.2自定义类型方法
8.2.3类型别名
8.2.4自定义类型和类型别名的区别
第9章接口(16min)
9.1Go接口interface
9.1.1接口的定义
9.1.2接口的实现
9.1.3接口的使用
9.1.4接口嵌套
9.1.5类型断言
9.2空接口
第10章协程与Channel(27min)
10.1何为协程
10.1.1WaitGroup
10.1.2WaitGroup原理探析
10.2Channel信道
10.2.1Channel类型
10.2.2创建Channel
10.2.3操作Channel
10.2.4无缓冲的Channel
10.2.5有缓冲的Channel
10.2.6从Channel中循环取值
10.3select
10.3.1select特点
10.3.2带default的语句
10.3.3不带default的语句
10.3.4关闭Channel监听
10.3.5空的select将一直阻塞
10.3.6select定时器
10.4协程的设计与原理
10.4.1单进程时代
10.4.2多进程时代
10.4.3多线程时代
10.4.4协程时代
10.4.5协程的调度
10.4.6Go语言协程调度
第11章线程安全与异常处理(25min)
11.1线程为什么不安全
11.2如何解决线程安全问题
11.2.1互斥锁
11.2.2读写锁
11.2.3一次性锁
11.2.4sync.Pool
11.3线程安全sync.Map
11.3.1sync.Map基本用法
11.3.2sync.Map为什么快
11.4异常处理
11.4.1自定义错误
11.4.2错误的处理方式
第12章泛型(7min)
12.1泛型函数
12.1.1泛型约束
12.1.2指定底层类型
12.1.3可比较类型
12.1.4多参数泛型
12.1.5泛型嵌套
12.1.6常用泛型函数
12.2泛型结构体
12.3泛型切片
12.4泛型map
12.5泛型Channel
第13章文件操作(53min)
13.1相对路径与绝对路径
13.2文件读取
13.2.1一次性读取
13.2.2分片读取
13.2.3按行读取
13.3文件写入
13.3.1一次性写入
13.3.2逐行写入
13.3.3使用缓冲写入
13.3.4os.OpenFile()函数
13.4目录操作
13.4.1创建目录
13.4.2读取目录
13.4.3遍历目录
13.4.4目录的其他操作
13.5JSON文件操作
13.5.1JSON序列化
13.5.2JSON反序列化
13.6I/O接口
13.6.1io.Reader接口
13.6.2io.Writer接口
13.6.3io.Closer接口
13.6.4统一的抽象层
13.6.5最小接口原则
13.7命令行参数
13.7.1什么是命令行参数
13.7.2使用os.Args获取命令行参数
13.7.3使用flag包解析命令行参数
第14章单元测试与包管理
14.1最简单的测试
14.2单元测试的基本规范
14.3单元测试的常用方法
14.3.1表驱动测试
14.3.2随机执行
14.3.3子测试
14.3.4TestMain()函数
14.4基准测试
14.5包管理
14.5.1Go包的概念
14.5.2包的导入与可见性
14.5.3Go依赖管理的概念
14.5.4go mod的使用
第15章反射(13min)
15.1反射的优点与缺点
15.2reflect包
15.2.1type Type 类型
15.2.2type Kind类型
15.2.3TypeOf常用方法
15.2.4ValueOf常用方法
第16章网络编程(8min)
16.1HTTP编程
16.1.1HTTP服务器端
16.1.2HTTP客户端
16.2HTTP协议
16.2.1HTTP协议的发展历程
16.2.2HTTP协议会话方式
16.2.3请求报文
16.2.4响应报文
16.3TCP编程
16.3.1标准收发模式
16.3.2聊天收发模式
16.4TCP协议
16.4.1OSI七层模型
16.4.2TCP报文
16.4.3三次握手
16.4.4四次挥手
16.5UDP编程
16.5.1UDP优势
16.5.2UDP服务器端
16.5.3UDP客户端
16.5.4UDP应用场景
第17章部署(13min)
17.1打包命令
17.2交叉编译
17.3文件嵌入
17.3.1嵌入单个文件
17.3.2嵌入多个文件
17.3.3嵌入目录
第18章正则表达式
18.1正则表达式概述
18.2正则表达式基本语法
18.2.1字符集合
18.2.2字符范围
18.2.3数量字符
18.2.4元字符
18.2.5特殊字符
18.2.6位置匹配
18.2.7分组
18.2.8修饰符
18.3Go语言中使用正则表达式
18.3.1字符串匹配
18.3.2分组匹配
18.3.3分组替换
18.3.4标志
18.4常用正则表达式
第19章标准库和常用第三方库(43min)
19.1Go标准库
19.1.1时间和日期
19.1.2数学
19.1.3日志
19.1.4上下文
19.2Go常用第三方库
19.2.1logrus日志库
19.2.2gin
19.2.3定时任务
|
內容試閱:
|
笔者从业互联网行业多年,在工作中使用了多种后端编程语言,如Python、Node.js、Java等。最后经过朋友的推荐,了解到了Go编程语言,笔者立刻被Go语言简洁易学的语法加上天生的高并发支持,以及便捷的部署方式所吸引。笔者在多年的开发历程中使用Go作为后端编程语言,上线了大量的全栈项目及课程,帮助了上万人入门了Go语言开发,也为Go语言的生态建设做出了很多个人贡献,所以笔者打算通过编写书籍的形式,将Go语言的完整学习历程整理并分享给读者。
本书以Go语言基础语法为核心,读者可以通过阅读本书,快速地掌握Go这门编程语言,并且帮助读者在学习的过程中少走弯路。
本书主要内容
第1章主要介绍编程语言的发展史,让读者对现如今的编程语言有一个初步的认识,以及了解Go语言诞生的历史。
第2章主要介绍Go语言的环境搭建,都说“工欲善其事,必先利其器”,有一个好用的环境在往后的学习过程中是非常重要的。
第3~16章主要介绍Go语言的基础语法,其中详细地讲解了数据类型、运算符、流程控制、函数、接口、文件操作、泛型、反射、网络编程等核心知识。
第17章主要介绍Go语言如何进行部署,这是Go语言的一大优势,这也是笔者爱上Go语言的一大原因。
第18章介绍生活中经常用到的正则表达式,学会了正则表达式,处理日常数据也会更加得心应手。
第19章介绍标准库和常用第三方库,使用这些库可以更好地帮助我们站在前人的肩膀上进行功能开发。
阅读建议
本书是一本基础入门、项目实战及原理剖析三位一体的技术教程,既提供详细的基础知识介绍,又提供了丰富的实际项目开发案例,包括详细的项目开发步骤,每个代码片段都有详细的注释标注和对应的操作说明。本书的基础知识、项目实战及原理剖析部分均提供了完整可运行的代码示例,帮助读者更好地自学全方位的技术体系。
建议没有Go语言实际开发经验的读者从头开始按照顺序详细阅读本书。章节划分完全按照线性思维,由浅入深,由远及近的方式对Go语言进行介绍,严格按照顺序阅读可以帮助读者不会出现知识断层。
资源下载提示
素材(源码)等资源: 扫描目录上方的二维码下载。
视频等资源: 扫描封底的文泉云盘防盗码,再扫描书中相应章节的二维码,可以在线学习。
致谢
感谢那些喜欢Go语言的网友对笔者的支持; 感谢清华大学出版社赵佳霓编辑; 感谢我的家人; 还要感谢我的朋友胡老师,他不仅是我进入IT行业的领路人,而且在我工作期间对我提供了很多帮助。
由于时间仓促,笔者水平有限,书中难免存在不妥之处,请读者见谅,并提宝贵意见。
郭志勇2025年1月
教学课件(PPT)
本书源码
|
|