本书是一部系统论述Go编程语言和实际应用技术的图书,全书共分为15章: 第1章~第9章讲解Go语言的基本语法; 第10章~第15章讲解Go语言的进阶知识。主要内容包括: 编写第一个Go语言程序、Go语言的语法基础、Go语言的数据类型、运算符、复合数据类型、条件语句、循环语句及跳转语句、函数、自定义数据类型、错误处理、并发编程、正则表达式、访问目录和文件、网络编程和数据库编程。另外,每章后面都安排了动手练一练实践环节,旨在帮助读者消化吸收本章知识点,并在附录A 中提供参考答案。为便于读者高效学习,快速掌握Go语言的编程方法,本书作者精心制作了完整的教学课件、源代码与微课视频,并提供在线答疑服务。本书适合零基础入门的读者,可作为高等院校和培训机构的教材。
教学资源
1.微课视频
2.程序代码
3.开源工具
4.教学课件
说明:关注人工智能科学与技术微信公众号,在知识资源下载配书资源菜单获取下载链接(或到清华大学出版社网站本书页面获取下载链接)。
为什么写作本书
2007年,谷歌的三位著名软件工程专家罗勃·派克、肯·汤普逊和罗伯特·格瑞史莫认为,现有的编程语言编程困难,编译速度慢,运行效率低,而计算机硬件却已飞速发展,计算机编程语言迫切需要改变,以适应计算机硬件的发展。他们以C语言为基础,参照其他编程语言,如C 、Java等,吸收这些编程语言的优点,摒弃其缺点,设计了一套全新的静态编译型语言Go语言。
Go语言被称为更好的C语言、互联网的C语言、云计算的C语言,代表高性能、易用性和高并发处理能力。
许多读者和学员亟待有一本能够帮助他们快速入门Go语言编程的图书。作者与清华大学出版社再次合作出版了这本《极简Go: 新手编程之道》,本书是极简开发者书库中的一本。极简开发者书库秉承讲解简单、快速入门和易于掌握的原则,是为新手入门而设计的系列图书。
读者对象
本书是一本讲解Go语言的基础图书,适合零基础入门的读者,可作为高校和培训机构的Go语言教材。
相关资源
为了更好地为广大读者服务,本书提供配套源代码、教学课件、微课视频和在线答疑服务。
如何使用书中配套源代码
本书配套源代码可以在清华大学出版社网站本书页面下载。
致谢
感谢清华大学出版社盛东亮编辑提出的宝贵意见。感谢智捷课堂团队的赵志荣、赵大羽、关锦华、闫婷娇、王馨然、关秀华和赵浩丞参与本书部分内容的编写。感谢赵浩丞手绘了书中全部插图,并从专业的角度修改书中图片,力求将本书内容更加真实完美地奉献给广大读者。感谢我的家人容忍我的忙碌,正是他们对我的关心和照顾,使我能抽出时间,投入精力专心编写此书。
由于Go语言编程应用不断更新迭代,而作者水平有限,书中难免存在不妥之处,恳请读者提出宝贵修改意见,以便再版时改进。
编者2023年9月
关东升一个在IT领域摸爬滚打20多年的老程序员、知名培训专家、畅销书作家。精通多种IT技术。参与设计和开发北京市公交一卡通大型项目,开发国家农产品追溯系统、金融系统微博等移动客户端项目,并在App Store发布多款游戏和应用软件。 长期为中国移动、中国联通、中国南方航空、中国石油、中国工商银行、平安银行和天津港务局等企事业单位提供培训服务。先后出版了《iOS开发指南》《从零开始学Swift》《Cocos2d-x实战》《Python从小白到大牛》《Java从小白到大牛》《Android从小白到大牛(Kotlin版)》等40多部图书。
第1章编写第一个Go语言程序
微课视频43分钟
1.1使用Go Playground编写程序Go语言代码
1.2搭建开发环境
1.2.1Windows系统中搭建Go语言开发环境
1.2.2Linux系统中搭建Go语言开发环境
1.2.3macOS系统中搭建Go语言开发环境
1.3使用石器时代工具编写Go语言代码
1.3.1编写程序
1.3.2编译程序
1.3.3运行程序
1.3.4代码解释
1.4使用铁器时代工具编写Go语言代码
1.4.1LiteIDE
1.4.2Visual Studio Code
1.5Go语言的优点
1.6如何获得帮助
1.7动手练一练
第2章Go语言的语法基础
微课视频30分钟
2.1标识符与关键字
2.1.1标识符
2.1.2关键字
2.2语句
2.3变量
2.3.1声明变量
2.3.2声明短变量
2.4常量
2.5格式化输出
2.6注释
2.7包
2.7.1声明包
2.7.2导入包
2.7.3自定义包
2.7.4为包提供别名
2.7.5匿名导入
2.8动手练一练
第3章Go语言的数据类型
微课视频38分钟
3.1Go语言的数据类型概述
3.2整数类型
3.3浮点类型
3.4复数类型
3.5布尔类型
3.6类型转换
3.7字符串类型
3.7.1字符串表示
3.7.2字符转义
3.7.3原始字符串
3.7.4操作字符串的常用函数
3.8动手练一练
第4章运算符
微课视频20分钟
4.1算术运算符
4.2关系运算符
4.3逻辑运算符
4.4位运算符
4.5赋值运算符
4.6其他运算符
4.7运算符优先级
4.8动手练一练
第5章复合数据类型
微课视频40分钟
5.1指针
5.1.1声明指针变量
5.1.2空指针
5.1.3二级指针
5.2数组
5.2.1声明数组
5.2.2访问数组元素
5.3切片
5.3.1声明切片
5.3.2使用切片操作符
5.3.3添加切片元素
5.4映射
5.4.1声明映射
5.4.2访问映射元素
5.4.3删除元素
5.5遍历容器
5.6动手练一练
第6章条件语句
微课视频15分钟
6.1if语句
6.1.1if结构
6.1.2ifelse结构
6.1.3ifelseif结构
6.2switch语句
6.2.1一个case语句有多个值
6.2.2使用fallthrough关键字贯穿case语句
6.3动手练一练
第7章循环语句及跳转语句
微课视频16分钟
7.1for循环语句
7.1.1基本形式的for循环语句
7.1.2简化的for循环语句
7.2跳转语句
7.2.1break语句
7.2.2使用标签的break语句
7.2.3continue语句
7.2.4使用标签的continue语句
7.2.5goto语句
7.3动手练一练
第8章函数
微课视频39分钟
8.1用户自定义函数
8.2函数返回值
8.2.1返回单一值
8.2.2返回多个值
8.2.3命名函数返回值
8.3可变参数函数
8.4函数式编程
8.4.1匿名函数
8.4.2函数作为返回值使用
8.4.3函数作为参数使用
8.5闭包与捕获变量
8.6动手练一练
第9章自定义数据类型
微课视频20分钟
9.1结构体
9.1.1声明结构体
9.1.2实例化结构体
9.1.3结构体指针
9.1.4结构体嵌套
9.2为结构体添加方法
9.3定义接口
9.4实现接口
9.5动手练一练
第10章错误处理
微课视频23分钟
10.1从一个问题开始
10.2使用error类型
10.3格式化错误信息
10.4自定义错误类型
10.5错误处理机制
10.5.1延迟执行
10.5.2进入宕机状态
10.5.3从宕机状态恢复
10.6动手练一练
第11章并发编程
微课视频42分钟
11.1进程、线程和协程
11.1.1进程
11.1.2线程
11.1.3协程
11.2通道
11.2.1声明通道
11.2.2发送和接收数据
11.2.3关闭通道
11.2.4遍历通道
11.3单向通道和双向通道
11.4无缓冲区通道和有缓冲区通道
11.4.1无缓冲区通道
11.4.2有缓冲区通道
11.5使用select语句
11.5.1基本的select用法
11.5.2默认分支
11.6动手练一练
第12章正则表达式
微课视频43分钟
12.1使用regexp包
12.2编译正则表达式
12.3编写正则表达式
12.3.1元字符
12.3.2字符转义
12.3.3使用元字符示例: 匹配开始与结束字符
12.3.4字符类
12.3.5字符类取反
12.3.6区间
12.3.7预定义字符类
12.3.8使用量词
12.3.9贪婪量词和懒惰量词
12.3.10定义分组
12.4regexp包的高级功能
12.4.1字符串分割
12.4.2字符串替换
12.5动手练一练
第13章访问目录和文件
微课视频33分钟
13.1目录管理
13.1.1创建目录
13.1.2删除目录
13.1.3重命名目录
13.2文件管理
13.2.1获取文件名
13.2.2获取目录名
13.2.3获取文件扩展名
13.2.4连接路径
13.2.5分割路径
13.2.6查找文件
13.3读取文件
13.3.1读取整个文件
13.3.2逐行读取文件
13.4写入文件
13.4.1使用WriteFile()函数写文件
13.4.2使用WriteString()函数写文件
13.5动手练一练
第14章网络编程
微课视频90分钟
14.1网络基础
14.1.1网络结构
14.1.2TCP/IP
14.1.3IP地址
14.1.4端口
14.2TCP Socket低层次网络编程
14.2.1TCP Socket通信概述
14.2.2TCP Socket通信过程
14.2.3TCP服务器端
14.2.4TCP客户端
14.2.5案例: 文件上传工具
14.3UDP Socket低层次网络编程
14.3.1UDP服务器端
14.3.2UDP客户端
14.4高层次网络编程
14.4.1URL概念
14.4.2HTTP/HTTPS
14.4.3搭建自己的Web服务器
14.4.4发送GET请求
14.4.5发送POST请求
14.4.6案例: Downloader
14.5JSON文档结构
14.5.1JSON编码
14.5.2JSON解码
14.6动手练一练
第15章数据库编程
微课视频37分钟
15.1MySQL数据库管理系统
15.1.1安装MySQL 8数据库
15.1.2客户端登录服务器
15.1.3常见的管理命令
15.2编写访问数据库程序
15.2.1MySQL驱动
15.2.2Go语言数据库编程一般过程
15.2.3建立和关闭数据连接
15.2.4预处理SQL语句
15.2.5执行SQL语句
15.3案例: 员工表增、删、改、查操作
15.3.1创建员工表
15.3.2插入员工数据
15.3.3更新员工数据
15.3.4删除员工数据
15.3.5按照主键查询员工数据
15.3.6查询所有员工数据
15.4动手练一练
附录A动手练一练参考答案