展开全部

主编推荐语

Go语言实用技术全面介绍。

内容简介

本书主要内容包括Go语言简介、安装与开发环境搭建、Go语言编程基础、面向对象编程在Go语言中的实现、用Go语言进行数学与科学计算、字符串处理、正则表达式处理、文件处理、数据格式分析与转换、并发编程、数据库开发、网络服务开发、图形图像处理、图形界面开发、反射机制、Go语言的功能与性能测试体系、Go语言与其他语言互通等。

书中内容的编排充分考虑了循序渐进学习Go语言的需要,精心设计了学习路径,由浅入深安排了大量与实际应用紧密结合的实例代码进行讲解,并穿插介绍了相关的编程知识。

目录

  • 版权信息
  • 内容提要
  • 前言
  • 第1章 Go语言简介
  • 1.1 Go语言的发展历史
  • 1.2 Go语言的主要特点
  • 第2章 开发环境准备
  • 2.1 安装Go语言
  • 2.1.1 Windows系统下安装Go语言
  • 2.1.2 Mac OS X系统下安装Go语言
  • 2.1.3 Linux系统下安装Go语言
  • 2.2 打造更舒适的开发环境
  • 2.2.1 修改Windows资源管理器的一些显示设置
  • 2.2.2 命令提示符CMD的替代方案
  • 2.2.3 文本文件编辑器
  • 2.3 Go语言开发工具的选择
  • 2.3.1 LiteIDE
  • 2.3.2 Visual Studio Code加Go语言插件
  • 2.3.3 其他开发工具
  • 第3章 Go语言快速入门
  • 3.1 初识Go语言
  • 3.1.1 怎样输入Go语言程序
  • 3.1.2 怎样编译Go语言程序
  • 3.1.3 怎样执行Go语言程序
  • 3.1.4 怎样查看Go语言的文档
  • 3.2 Go语言程序的组织
  • 3.2.1 Go语言中程序文件的组织方式
  • 3.2.2 非执行包与包的引用
  • 3.2.3 自己编写非执行包
  • 3.2.4 非执行包名与目录的关系
  • 3.2.5 用多级子目录组织包结构
  • 3.3 关键字等语言要素
  • 3.4 变量
  • 3.4.1 变量的基本概念
  • 3.4.2 浮点数类型的变量
  • 3.4.3 字符串类型的变量
  • 3.4.4 布尔类型的变量
  • 3.4.5 变量的命名
  • 3.4.6 变量声明和赋值的简化形式
  • 3.4.7 复合类型的变量
  • 3.4.8 变量类型的转换
  • 3.4.9 指针类型的变量
  • 3.4.10 变量的零值
  • 3.5 表达式
  • 3.6 函数(方法)
  • 3.7 自定义数据类型
  • 3.8 面向对象编程
  • 3.9 条件判断与分支
  • 3.10 循环
  • 3.11 并发处理:Go例程
  • 3.12 注释
  • 3.13 程序编译或运行时出现错误
  • 3.14 总结的代码
  • 第4章 Go语言的基本语法与开发基础
  • 4.1 Go语言语法要素与代码规范
  • 4.1.1 文件和字符串编码
  • 4.1.2 语句、代码块与执行顺序
  • 4.1.3 语句分隔
  • 4.1.4 语法记号
  • 4.2 代码格式化工具gofmt
  • 4.3 常用的辅助性内置函数
  • 4.3.1 内置的输出信息函数print与println
  • 4.3.2 获取数据长度的len函数
  • 4.3.3 获取变量容量的cap函数
  • 4.3.4 用于复合类型数据的操作函数
  • 4.3.5 用于处理异常的函数
  • 4.4 格式化输出函数fmt.Printf
  • 4.4.1 整数格式化符%d
  • 4.4.2 十六进制格式化符%x和%X
  • 4.4.3 二进制格式化符%b
  • 4.4.4 浮点数格式化符%f
  • 4.4.5 其他浮点数格式化符
  • 4.4.6 布尔类型的格式化符%t
  • 4.4.7 Unicode码相关格式化符%c、%q和%U
  • 4.4.8 字符串格式化符%s
  • 4.4.9 指针格式化符%p
  • 4.4.10 万能格式化符%v
  • 4.4.11 输出数值类型的格式化符%T
  • 4.4.12 输出%字符本身
  • 4.5 获取和使用第三方包
  • 4.6 定义和使用常量
  • 4.7 变量、函数等标识符声明的作用范围
  • 4.8 tools包
  • 第5章 用Go语言进行数学、科学领域的计算
  • 5.1 表达式
  • 5.1.1 最简单的表达式——单个数值
  • 5.1.2 操作符在表达式中的作用
  • 5.1.3 函数在表达式中的作用
  • 5.1.4 表达式的组合与计算的优先级
  • 5.1.5 表达式中数据类型的一致性要求
  • 5.2 用表达式进行数学计算
  • 5.2.1 体重指数
  • 5.2.2 用表达式计算体重指数
  • 5.2.3 使用命令行参数传入体重和身高的变量值
  • 5.3 利用系统自带的数学库进行计算
  • 5.3.1 查阅Go语言中的参考文档
  • 5.3.2 使用math.Pow函数进行平方计算
  • 5.3.3 用math/rand包生成随机数
  • 5.4 用Go语言进行科学计算
  • 5.4.1 向量与余弦相似度概念简介
  • 5.4.2 计算向量余弦相似度的函数
  • 5.5 使用math/big包避免计算过程中超大数溢出
  • 5.5.1 big包的基本使用方法
  • 5.5.2 用big包改进余弦相似度计算函数
  • 5.6 计算中的异常处理
  • 5.6.1 Go语言中的匿名函数
  • 5.6.2 Go语言的延迟处理机制
  • 5.6.3 Go语言的异常处理机制
  • 5.6.4 处理计算中的异常
  • 5.6.5 Go语言中异常的传递顺序
  • 5.6.6 使用runtime库输出更多的异常信息
  • 5.7 使用第三方包进行更复杂的数学计算
  • 5.7.1 Gonum包中用于矩阵运算的mat子包简介
  • 5.7.2 矩阵乘法的计算过程
  • 5.7.3 用gonum/mat子包实现矩阵乘法
  • 第6章 用Go语言开发一个命令行工具
  • 6.1 命令行工具简介
  • 6.2 典型命令行工具的架构
  • 6.3 基本的命令行工具clix程序框架
  • 6.4 Go语言中的switch语句
  • 6.5 clix的第一个命令:version
  • 6.6 增加体重指数计算命令calbmi
  • 6.6.1 tools包中增加判断起始子字符串的函数
  • 6.6.2 子字符串的截取
  • 6.6.3 tools包中增加判断标志参数的函数
  • 6.6.4 编写clix中的calbmi命令
  • 6.6.5 增加命令行开关标志参数
  • 6.6.6 使用flag包来分析命令行参数
  • 6.7 第三个命令:数字排序
  • 6.7.1 循环进阶
  • 6.7.2 冒泡法排序
  • 6.7.3 用双重循环实现冒泡法排序
  • 6.7.4 命令行参数中传入数字序列
  • 6.7.5 在clix程序中加入冒泡法排序的命令
  • 6.8 Go语言中对典型代码逻辑结构的支持
  • 6.8.1 基本的代码结构
  • 6.8.2 利用标签跳出或继续外层循环
  • 6.8.3 goto语句无条件跳转
  • 6.8.4 递归(调用自身函数)
  • 第7章 Go语言中的字符串处理
  • 7.1 字符串相关的基础知识
  • 7.1.1 字符串的基本概念
  • 7.1.2 byte、uint8和int8类型
  • 7.1.3 byte类型的切片([]byte)与string
  • 7.1.4 字符串的基本操作:取长度、连接、截取等
  • 7.1.5 用双引号或反引号括起字符串的区别
  • 7.2 字符串支持多语言编码的特殊处理
  • 7.2.1 UTF-8编码
  • 7.2.2 rune类型和rune类型切片
  • 7.2.3 用rune对字符串进行遍历
  • 7.3 常见的字符串操作
  • 7.3.1 判断字符串中是否含有某个子串
  • 7.3.2 获取字符串中子串的位置
  • 7.3.3 获取字符串中子串第n次出现的位置
  • 7.3.4 统计字符串中子串出现的次数
  • 7.3.5 判断字符串的起始或结尾子串
  • 7.3.6 比较两个字符串
  • 7.3.7 去除字符串首尾空白或其他字符
  • 7.3.8 替换字符串中的子串
  • 7.3.9 字符串大小写的转换
  • 7.3.10 切分字符串
  • 7.3.11 合并字符串切片
  • 7.3.12 生成重复子串组成的字符串
  • 7.3.13 几个Unicode操作
  • 7.4 高级字符串操作
  • 7.4.1 生成随机字符串
  • 7.4.2 用strings.Builder实现不断增长的字符串
  • 7.4.3 用于读取字符串内容的strings.Reader
  • 7.4.4 字符串与数字的相互转化
  • 7.4.5 用fmt.Sprintf实现灵活的字符串处理
  • 7.4.6 用fmt.Sscanf从字符串中读取信息
  • 第8章 Go语言中的正则表达式
  • 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 正则表达式中使用标志位进行设置
  • 8.2.5 可选子串匹配
  • 8.2.6 非捕获组
  • 8.2.7 获取匹配到子串的索引位置
  • 8.2.8 用正则表达式分割字符串
  • 8.2.9 判断整个字符串是否匹配正则表达式
  • 8.2.10 按字节进行正则表达式匹配
  • 第9章 Go语言文件处理
  • 9.1 Go语言中文本文件的处理
  • 9.1.1 文本文件的编码
  • 9.1.2 文本文件的打开、读取与关闭等基本操作
  • 9.1.3 从较大的文本文件中读取完整内容
  • 9.1.4 较简单的读取完整文本的方法
  • 9.1.5 更简单的读取完整文本的方法
  • 9.1.6 从文本文件中读取指定数量的行
  • 9.1.7 将字符串写入文本文件
  • 9.1.8 向已有的文本文件中追加内容
  • 9.1.9 用移动文件指针的方法向文件中追加内容
  • 9.1.10 文件、目录的其他基本操作
  • 9.1.11 文本文件编码转换
  • 9.1.12 文本排序
  • 9.1.13 超大文本文件排序
  • 9.1.14 文本查重、去重
  • 9.2 Go语言中二进制文件的处理
  • 9.2.1 Go语言中用二进制文件存储数据
  • 9.2.2 自定义文件格式存储大量数据记录
  • 9.3 文件处理总结
  • 第10章 Go语言中数据格式的分析与转换
  • 10.1 常见的数据交换格式
  • 10.2 XML格式的处理
  • 10.2.1 将数据序列化成XML格式
  • 10.2.2 将XML格式的文本反序列化
  • 10.2.3 省略字段、字符字段和原始XML文本字段
  • 10.2.4 自行控制某数据类型的XML序列化/反序列化
  • 10.3 JSON格式的处理
  • 10.3.1 将数据序列化成JSON格式
  • 10.3.2 将JSON格式的文本反序列化
  • 10.3.3 JSON序列化/反序列化时使用描述字符串
  • 10.3.4 自行控制自定义数据类型的JSON序列化/反序列化
  • 10.3.5 用空接口类型实现复杂结构的JSON序列化
  • 10.3.6 JSON解析中空接口类型的应用
  • 10.3.7 使用第三方包进行JSON格式的序列化与反序列化
  • 第11章 Go语言的并发处理
  • 11.1 Go语言并发编程基础
  • 11.2 并发处理时的共享冲突
  • 11.3 使用通道类型实现安全的数据共享
  • 11.4 使用通道作为数据访问的令牌
  • 11.5 使用通道实现多任务的归并
  • 11.6 用select实现多通道的归并
  • 11.7 select中实现超时中止
  • 11.8 用单向通道自定义超时函数
  • 11.9 使用sync包进行传统的并发处理
  • 11.9.1 用sync.WaitGroup实现goroutine归并
  • 11.9.2 用锁(互斥量)实现goroutine同步
  • 11.9.3 用读写锁(互斥量)做“多读少写”型并发任务
  • 第12章 Go语言进行数据库开发
  • 12.1 Go语言进行数据库开发的一般方式
  • 12.2 安装SQLite数据库驱动
  • 12.3 基本的数据库操作
  • 12.4 删除记录、准备SQL查询等操作
  • 12.5 获取记录条数、删除库表等操作
  • 12.6 SQL型数据库开发总结
  • 12.7 NoSQL型数据库开发示例
  • 第13章 Go语言进行网络服务的开发
  • 13.1 C/S架构与B/S架构的概念
  • 13.2 基于Socket通信的客户端/服务器模式
  • 13.3 基于TCP的Socket客户端/服务器系统
  • 13.4 典型的Socket服务器的例子
  • 13.5 典型的Socket客户端的例子
  • 13.6 典型的UDP服务器的例子
  • 13.7 典型的UDP客户端的例子
  • 13.8 用Go语言搭建简单的Web服务器
  • 13.9 搭建简单的文件服务器
  • 13.10 搭建静态文件型的Web网站服务器
  • 13.11 混合不同方式的Web服务器
  • 13.12 搭建提供网络接口服务的API服务器
  • 13.13 Web服务器的路由管理
  • 13.14 动态网页的生成
  • 13.15 提供HTTPS方式访问
  • 13.16 第三方的Web开发包
  • 13.17 Go语言中实现Web客户端
  • 第14章 Go语言进行绘图和图像处理
  • 14.1 基本的点绘图
  • 14.2 绘制曲线图
  • 14.3 绘制有填充色的形状
  • 14.4 实现渐变的填充色
  • 14.5 使用第三方库更方便实现复杂图形绘制
  • 14.6 绘制平滑曲线
  • 14.7 在图片上绘制文字
  • 14.8 使用freetype包进行文字绘制
  • 14.9 用image/draw包实现灵活的图像处理
  • 14.9.1 实现图片区域复制
  • 14.9.2 用draw.Draw函数进行颜色填充
  • 14.9.3 image包中的几个重要对象
  • 14.9.4 用颜色填充绘制矩形框
  • 14.9.5 将图片变成全透明
  • 14.9.6 复制原图中的区域到目标图中另一个区域
  • 14.9.7 使用蒙版复制不规则区域
  • 14.9.8 自定义image.Image类型的蒙版对象
  • 14.9.9 图片色彩空间的转换
  • 14.10 在Web中输出图像
  • 第15章 Go语言进行图形界面开发
  • 15.1 使用Qt开发图形界面
  • 15.1.1 Go结合Qt开发环境的搭建
  • 15.1.2 Go结合Qt开发基础示例
  • 15.1.3 部署therecipe/qt示例程序
  • 15.1.4 在goroutine中安全操作图形界面
  • 15.2 使用govcl包开发图形界面
  • 15.2.1 使用govcl包开发图形界面的基础示例
  • 15.2.2 govcl包中避免并发界面操作冲突
  • 15.3 Go语言中开发基于Web的图形界面
  • 第16章 Go语言的反射机制
  • 16.1 用反射机制获取基本类型的信息
  • 16.2 用反射获取复杂类型的信息
  • 16.3 函数的传值与传引用
  • 16.4 用反射获取结构类型(对象)的成员信息
  • 16.5 用反射获取空接口类型数据的实际类型
  • 16.6 用Kind函数获取基类型
  • 16.7 判断对象是否实现了某方法或接口
  • 16.8 动态调用对象的方法
  • 16.9 修改数据
  • 16.10 实例:JSON处理
  • 第17章 Go语言的测试与性能
  • 17.1 功能测试
  • 17.1.1 基本的功能测试
  • 17.1.2 功能测试不通过的情况
  • 17.1.3 立即中止测试用例函数
  • 17.1.4 简化的中止测试用例函数
  • 17.1.5 跳过测试用例
  • 17.1.6 进行并发测试
  • 17.1.7 指定运行的测试用例
  • 17.2 性能测试
  • 17.2.1 基本的性能测试
  • 17.2.2 根据性能测试结果进行优化和比对
  • 17.2.3 指定性能测试的时长
  • 17.2.4 手动控制测试计时
  • 17.2.5 测试内存分配的情况
  • 第18章 Go语言与其他语言的结合运用
  • 18.1 Cgo
  • 18.1.1 Go语言中直接编写C语言代码
  • 18.1.2 Go语言中调用C语言文件中的代码
  • 18.1.3 Go语言中编写函数供C语言调用
  • 18.1.4 Cgo的一些局限
  • 18.2 Go语言中运行其他脚本语言
  • 18.2.1 Tengo脚本语言
  • 18.2.2 实现JavaScript虚拟机的otto包
  • 18.2.3 实现Lua语言虚拟机的go-lua包
  • 18.3 Go语言中直接执行其他程序或调用系统命令
  • 18.3.1 调用应用程序并读取其输出
  • 18.3.2 使用管道从程序的输出中接收信息
  • 18.4 Go语言与WebAssembly
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。