Go语言从入门到精通

Go语言从入门到精通
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2021-02
版次: 1
ISBN: 9787115520760
定价: 79.80
装帧: 其他
开本: 其他
纸张: 胶版纸
页数: 406页
字数: 667千字
7人买过
  • 本书主要内容包括Go语言简介、开发环境准备、快速基础入门、数学科学领域的计算、开发一个自己的日常命令行工具、文件处理、数据格式分析与转换、正则表达式、并发处理、数据采集和清理应用、网络服务端应用、Web服务器、加密解密领域应用、网络提供的各种API、常用Go语言技术的示例与研究、实用函数实例等。安排了大量实例代码,介绍相关编程知识。 谢琼,计算机软件、通信行业和外语在线教育领域专家,国家认证系统分析师。在大型国企和世界50强IT跨国公司从事计算机系统、电信行业项目、外语在线教育项目、人工智能/深度学习领域项目多年,曾主持编写国家电信行业安全标准,项目经验丰富,是人工智能英语分析系统“小仙英语伴读”的创始人。精通十几种计算机语言,擅长理论的落地、实用化,长期担任企业内部培训讲师和整体方案咨询讲师,课程教授方式深入浅出,对实例的讲解简单易懂,易于理解,尤其适合入门学习者。 目 录

    第1章 Go语言简介 1

    1.1 Go语言的发展历史 1

    1.2 Go语言的主要特点 1

    第2章 开发环境准备 4

    2.1 安装Go语言 4

    2.1.1 Windows系统下安装Go语言 4

    2.1.2 Mac OS X系统下安装Go语言 8

    2.1.3 Linux系统下安装Go语言 8

    2.2 打造更舒适的开发环境 9

    2.2.1 修改Windows资源管理器的一些

    显示设置 9

    2.2.2 命令提示符CMD的替代方案 9

    2.2.3 文本文件编辑器 11

    2.3 Go语言开发工具的选择 11

    2.3.1 LiteIDE 11

    2.3.2 Visual Studio Code加Go语言

    插件 11

    2.3.3 其他开发工具 14

    第3章 Go语言快速入门 15

    3.1 初识Go语言——编写、编译和运行 15

    3.1.1 怎样输入Go语言程序 15

    3.1.2 怎样编译Go语言程序 17

    3.1.3 怎样执行Go语言程序 18

    3.1.4 怎样查看Go语言的文档 19

    3.2 Go语言程序的组织 20

    3.2.1 Go语言中程序文件的组织方式 20

    3.2.2 非执行包与包的引用 22

    3.2.3 自己编写非执行包 23

    3.2.4 非执行包名与目录的关系 24

    3.2.5 用多级子目录组织包结构 25

    3.3 关键字等语言要素 26

    3.4 变量 26

    3.4.1 变量的基本概念 26

    3.4.2 浮点数类型的变量 28

    3.4.3 字符串类型的变量 29

    3.4.4 布尔类型的变量 29

    3.4.5 变量的命名 30

    3.4.6 变量声明和赋值的简化形式 31

    3.4.7 复合类型的变量 32

    3.4.8 变量类型的转换 34

    3.4.9 指针类型的变量 35

    3.4.10 变量的零值 36

    3.5 表达式 37

    3.6 函数(方法) 37

    3.7 自定义数据类型 40

    3.8 面向对象编程 42

    3.9 条件判断与分支 45

    3.10 循环 46

    3.11 并发处理:Go例程 48

    3.12 注释 49

    3.13 程序编译或运行时出现错误 50

    3.14 总结的代码 51

    第4章 Go语言的基本语法与

     开发基础 52

    4.1 Go语言语法要素与代码规范 52

    4.1.1 文件和字符串编码 52

    4.1.2 语句、代码块与执行顺序 53

    4.1.3 语句分隔 53

    4.1.4 语法记号 53

    4.2 代码格式化工具gofmt 54

    4.3 常用的辅助性内置函数 55

    4.3.1 内置的输出信息函数print与

    println 55

    4.3.2 获取数据长度的len函数 56

    4.3.3 获取变量容量的cap函数 57

    4.3.4 用于复合类型数据的操作函数 57

    4.3.5 用于处理异常的函数 58

    4.4 格式化输出函数fmt.Printf 58

    4.4.1 整数格式化符%d 60

    4.4.2 十六进制格式化符%x和%X 61

    4.4.3 二进制格式化符%b 62

    4.4.4 浮点数格式化符%f 62

    4.4.5 其他浮点数格式化符 63

    4.4.6 布尔类型的格式化符%t 64

    4.4.7 Unicode码相关格式化符%c、

    %q和%U 64

    4.4.8 字符串格式化符%s 65

    4.4.9 指针格式化符%p 66

    4.4.10 万能格式化符 %v 66

    4.4.11 输出数值类型的格式化符%T 68

    4.4.12 输出%字符本身 68

    4.5 获取和使用第三方包 68

    4.6 定义和使用常量 70

    4.7 变量、函数等标识符声明的作用范围 72

    4.8 tools包——编写自己的函数库 74

    第5章 用Go语言进行数学、科学

     领域的计算 76

    5.1 表达式 76

    5.1.1 最简单的表达式——单个数值 76

    5.1.2 操作符在表达式中的作用 76

    5.1.3 函数在表达式中的作用 79

    5.1.4 表达式的组合与计算的优先级 80

    5.1.5 表达式中数据类型的一致性要求 81

    5.2 用表达式进行数学计算 81

    5.2.1 体重指数 81

    5.2.2 用表达式计算体重指数 82

    5.2.3 使用命令行参数传入体重和

    身高的变量值 83

    5.3 利用系统自带的数学库进行计算 85

    5.3.1 查阅Go语言中的参考文档 85

    5.3.2 使用math.Pow函数进行平方

    计算 86

    5.3.3 用math/rand包生成随机数 87

    5.4 用Go语言进行科学计算 90

    5.4.1 向量与余弦相似度概念简介 90

    5.4.2 计算向量余弦相似度的函数 91

    5.5 使用math/big包避免计算过程中

     超大数溢出 93

    5.5.1 big包的基本使用方法 93

    5.5.2 用big包改进余弦相似度计算

    函数 94

    5.6 计算中的异常处理 95

    5.6.1 Go语言中的匿名函数 95

    5.6.2 Go语言的延迟处理机制 97

    5.6.3 Go语言的异常处理机制 98

    5.6.4 处理计算中的异常 100

    5.6.5 Go语言中异常的传递顺序 107

    5.6.6 使用runtime库输出更多的异常

    信息 108

    5.7 使用第三方包进行更复杂的数学

     计算 109

    5.7.1 Gonum包中用于矩阵运算的mat

    子包简介 109

    5.7.2 矩阵乘法的计算过程 109

    5.7.3 用gonum/mat子包实现矩阵

    乘法 110

    第6章 用Go语言开发一个

     命令行工具 113

    6.1 命令行工具简介 113

    6.2 典型命令行工具的架构 113

    6.3 基本的命令行工具clix程序框架 114

    6.4 Go语言中的switch语句 115

    6.5 clix的第一个命令:version 118

    6.6 增加体重指数计算命令calbmi 118

    6.6.1 tools包中增加判断起始

    子字符串的函数 118

    6.6.2 子字符串的截取 119

    6.6.3 tools包中增加判断标志参数的

    函数 120

    6.6.4 编写clix中的calbmi命令 120

    6.6.5 增加命令行开关标志参数 121

    6.6.6 使用flag包来分析命令行参数 123

    6.7 第三个命令:数字排序 125

    6.7.1 循环进阶 125

    6.7.2 冒泡法排序 130

    6.7.3 用双重循环实现冒泡法排序 131

    6.7.4 命令行参数中传入数字序列 131

    6.7.5 在clix程序中加入冒泡法

    排序的命令 133

    6.8 Go语言中对典型代码逻辑结构的

     支持 133

    6.8.1 基本的代码结构 134

    6.8.2 利用标签跳出或继续外层循环 134

    6.8.3 goto语句无条件跳转 136

    6.8.4 递归(调用自身函数) 137

    第7章 Go语言中的字符串处理 138

    7.1 字符串相关的基础知识 138

    7.1.1 字符串的基本概念 138

    7.1.2 byte、uint8和int8类型 138

    7.1.3 byte类型的切片([]byte)与

    string 140

    7.1.4 字符串的基本操作:取长度、

    连接、截取等 140

    7.1.5 用双引号或反引号括起字符串的

    区别 141

    7.2 字符串支持多语言编码的特殊

     处理 141

    7.2.1 UTF-8编码 142

    7.2.2 rune类型和rune类型切片 143

    7.2.3 用rune对字符串进行遍历 144

    7.3 常见的字符串操作 145

    7.3.1 判断字符串中是否含有某个子串 145

    7.3.2 获取字符串中子串的位置 146

    7.3.3 获取字符串中子串第n次出现的

    位置 146

    7.3.4 统计字符串中子串出现的次数 148

    7.3.5 判断字符串的起始或结尾子串 148

    7.3.6 比较两个字符串 149

    7.3.7 去除字符串首尾空白或其他字符 150

    7.3.8 替换字符串中的子串 152

    7.3.9 字符串大小写的转换 152

    7.3.10 切分字符串 153

    7.3.11 合并字符串切片 154

    7.3.12 生成重复子串组成的字符串 155

    7.3.13 几个Unicode操作 155

    7.4 高级字符串操作 157

    7.4.1 生成随机字符串 157

    7.4.2 用strings.Builder实现不断增长的

    字符串 159

    7.4.3 用于读取字符串内容的

    strings.Reader 161

    7.4.4 字符串与数字的相互转化 162

    7.4.5 用fmt.Sprintf实现灵活的字符串

    处理 169

    7.4.6 用fmt.Sscanf从字符串中读取

    信息 170

    第8章 Go语言中的正则表达式 173

    8.1 正则表达式的基本概念与用法 173

    8.1.1 用正则表达式判断字符串是否

    含有符合一定规则的子串 173

    8.1.2 用正则表达式从字符串中提取

    符合一定规则的子串 174

    8.1.3 用通配符“.”匹配任意字符 175

    8.1.4 贪婪与非贪婪匹配 176

    8.1.5 分组提取子串 177

    8.1.6 提取所有符合条件的带捕获组的

    匹配结果 178

    8.1.7 替换符合正则表达式的子串 179

    8.1.8 转义字符 180

    8.2 正则表达式进阶知识 181

    8.2.1 单个字符的表达 181

    8.2.2 表达字符出现的次数(数量) 184

    8.2.3 非字符匹配(位置匹配) 185

    8.2.4 正则表达式中使用标志位进行

    设置 186

    8.2.5 可选子串匹配 187

    8.2.6 非捕获组 187

    8.2.7 获取匹配到子串的索引位置 188

    8.2.8 用正则表达式分割字符串 188

    8.2.9 判断整个字符串是否匹配正则

    表达式 189

    8.2.10 按字节进行正则表达式匹配 189

    第9章 Go语言文件处理 190

    9.1 Go语言中文本文件的处理 190

    9.1.1 文本文件的编码 190

    9.1.2 文本文件的打开、读取与关闭等

    基本操作 191

    9.1.3 从较大的文本文件中读取完整

    内容 193

    9.1.4 较简单的读取完整文本的方法 194

    9.1.5 更简单的读取完整文本的方法 195

    9.1.6 从文本文件中读取指定

    数量的行 196

    9.1.7 将字符串写入文本文件 198

    9.1.8 向已有的文本文件中追加内容 199

    9.1.9 用移动文件指针的方法向

    文件中追加内容 200

    9.1.10 文件、目录的其他基本操作 201

    9.1.11 文本文件编码转换 208

    9.1.12 文本排序 215

    9.1.13 超大文本文件排序 218

    9.1.14 文本查重、去重 219

    9.2 Go语言中二进制文件的处理 219

    9.2.1 Go语言中用二进制文件存储

    数据 219

    9.2.2 自定义文件格式存储大量数据

    记录 224

    9.3 文件处理总结 227

    第10章 Go语言中数据格式的

     分析与转换 229

    10.1 常见的数据交换格式 229

    10.2 XML格式的处理 229

    10.2.1 将数据序列化成XML格式 229

    10.2.2 将XML格式的文本反序列化 232

    10.2.3 省略字段、字符字段和原始

     XML文本字段 234

    10.2.4 自行控制某数据类型的XML

     序列化/反序列化 235

    10.3 JSON格式的处理 237

    10.3.1 将数据序列化成JSON格式 237

    10.3.2 将JSON格式的文本反序列化 239

    10.3.3 JSON序列化/反序列化时使用

     描述字符串 240

    10.3.4 自行控制自定义数据类型的

     JSON序列化/反序列化 242

    10.3.5 用空接口类型实现复杂结构的

     JSON序列化 244

    10.3.6 JSON解析中空接口类型的

     应用 246

    10.3.7 使用第三方包进行JSON格式的

     序列化与反序列化 248

    第11章 Go语言的并发处理 250

    11.1 Go语言并发编程基础 250

    11.2 并发处理时的共享冲突 253

    11.3 使用通道类型实现安全的数据共享 255

    11.4 使用通道作为数据访问的令牌 257

    11.5 使用通道实现多任务的归并 258

    11.6 用select实现多通道的归并 260

    11.7 select中实现超时中止 262

    11.8 用单向通道自定义超时函数 263

    11.9 使用sync包进行传统的并发处理 265

    11.9.1 用sync.WaitGroup实现

     goroutine归并 266

    11.9.2 用锁(互斥量)实现

     goroutine同步 267

    11.9.3 用读写锁(互斥量)做“多

     读少写”型并发任务 268

    第12章 Go语言进行数据库开发 270

    12.1 Go语言进行数据库开发的一般

     方式 270

    12.2 安装SQLite数据库驱动 270

    12.3 基本的数据库操作——新建库表、

     插入记录和查询 270

    12.4 删除记录、准备SQL查询等操作 273

    12.5 获取记录条数、删除库表等操作 275

    12.6 SQL型数据库开发总结 276

    12.7 NoSQL型数据库开发示例 276

    第13章 Go语言进行网络服务的

     开发 280

    13.1 C/S架构与B/S架构的概念 280

    13.2 基于Socket通信的客户端/服务器

     模式 280

    13.3 基于TCP的Socket客户端/服务器

     系统 281

    13.4 典型的Socket服务器的例子 281

    13.5 典型的Socket客户端的例子 283

    13.6 典型的UDP服务器的例子 286

    13.7 典型的UDP客户端的例子 287

    13.8 用Go语言搭建简单的Web服务器 288

    13.9 搭建简单的文件服务器 290

    13.10 搭建静态文件型的Web网站

     服务器 290

    13.11 混合不同方式的Web服务器 293

    13.12 搭建提供网络接口服务的API

     服务器 294

    13.13 Web服务器的路由管理 297

    13.14 动态网页的生成 299

    13.15 提供HTTPS方式访问 302

    13.16 第三方的Web开发包 303

    13.17 Go语言中实现Web客户端 305

    第14章 Go语言进行绘图和图像

     处理 307

    14.1 基本的点绘图 307

    14.2 绘制曲线图 308

    14.3 绘制有填充色的形状 311

    14.4 实现渐变的填充色 314

    14.5 使用第三方库更方便实现复杂

     图形绘制 318

    14.6 绘制平滑曲线 321

    14.7 在图片上绘制文字 323

    14.8 使用freetype包进行文字绘制 326

    14.9 用image/draw包实现灵活的图像

     处理 328

    14.9.1 实现图片区域复制 328

    14.9.2 用draw.Draw函数进行颜色

     填充 333

    14.9.3 image包中的几个重要对象 333

    14.9.4 用颜色填充绘制矩形框 334

    14.9.5 将图片变成全透明 334

    14.9.6 复制原图中的区域到目标图中

     另一个区域 335

    14.9.7 使用蒙版复制不规则区域 335

    14.9.8 自定义image.Image类型的蒙版

     对象 337

    14.9.9 图片色彩空间的转换 338

    14.10 在Web中输出图像 339

    第15章 Go语言进行图形界面

     开发 343

    15.1 使用Qt开发图形界面 343

    15.1.1 Go结合Qt开发环境的搭建 343

    15.1.2 Go结合Qt开发基础示例 344

    15.1.3 部署therecipe/qt示例程序 346

    15.1.4 在goroutine中安全操作图形

     界面 347

    15.2 使用govcl包开发图形界面 355

    15.2.1 使用govcl包开发图形界面的

     基础示例 355

    15.2.2 govcl包中避免并发界面操作

     冲突 358

    15.3 Go语言中开发基于Web的图形

     界面 360

    第16章 Go语言的反射机制 361

    16.1 用反射机制获取基本类型的信息 361

    16.2 用反射获取复杂类型的信息 362

    16.3 函数的传值与传引用 363

    16.4 用反射获取结构类型(对象)的

     成员信息 364

    16.5 用反射获取空接口类型数据的

     实际类型 366

    16.6 用Kind函数获取基类型 367

    16.7 判断对象是否实现了某方法或接口 370

    16.8 动态调用对象的方法 372

    16.9 修改数据 374

    16.10 实例:JSON处理 375

    第17章 Go语言的测试与性能 378

    17.1 功能测试 378

    17.1.1 基本的功能测试 378

    17.1.2 功能测试不通过的情况 379

    17.1.3 立即中止测试用例函数 380

    17.1.4 简化的中止测试用例函数 381

    17.1.5 跳过测试用例 381

    17.1.6 进行并发测试 382

    17.1.7 指定运行的测试用例 383

    17.2 性能测试 384

    17.2.1 基本的性能测试 384

    17.2.2 根据性能测试结果进行优化和

     比对 386

    17.2.3 指定性能测试的时长 387

    17.2.4 手动控制测试计时 388

    17.2.5 测试内存分配的情况 388

    第18章 Go语言与其他语言的

     结合运用 390

    18.1 Cgo 390

    18.1.1 Go语言中直接编写C语言

     代码 390

    18.1.2 Go语言中调用C语言

     文件中的代码 393

    18.1.3 Go语言中编写函数供

     C语言调用 394

    18.1.4 Cgo的一些局限 396

    18.2 Go语言中运行其他脚本语言 396

    18.2.1 Tengo脚本语言 396

    18.2.2 实现JavaScript虚拟机的

     otto包 398

    18.2.3 实现Lua语言虚拟机的

     go-lua包 399

    18.3 Go语言中直接执行其他程序或调用

     系统命令 400

    18.3.1 调用应用程序并读取其输出 400

    18.3.2 使用管道从程序的输出中接收

     信息 402

    18.4 Go语言与WebAssembly 404
  • 内容简介:
    本书主要内容包括Go语言简介、开发环境准备、快速基础入门、数学科学领域的计算、开发一个自己的日常命令行工具、文件处理、数据格式分析与转换、正则表达式、并发处理、数据采集和清理应用、网络服务端应用、Web服务器、加密解密领域应用、网络提供的各种API、常用Go语言技术的示例与研究、实用函数实例等。安排了大量实例代码,介绍相关编程知识。
  • 作者简介:
    谢琼,计算机软件、通信行业和外语在线教育领域专家,国家认证系统分析师。在大型国企和世界50强IT跨国公司从事计算机系统、电信行业项目、外语在线教育项目、人工智能/深度学习领域项目多年,曾主持编写国家电信行业安全标准,项目经验丰富,是人工智能英语分析系统“小仙英语伴读”的创始人。精通十几种计算机语言,擅长理论的落地、实用化,长期担任企业内部培训讲师和整体方案咨询讲师,课程教授方式深入浅出,对实例的讲解简单易懂,易于理解,尤其适合入门学习者。
  • 目录:
    目 录

    第1章 Go语言简介 1

    1.1 Go语言的发展历史 1

    1.2 Go语言的主要特点 1

    第2章 开发环境准备 4

    2.1 安装Go语言 4

    2.1.1 Windows系统下安装Go语言 4

    2.1.2 Mac OS X系统下安装Go语言 8

    2.1.3 Linux系统下安装Go语言 8

    2.2 打造更舒适的开发环境 9

    2.2.1 修改Windows资源管理器的一些

    显示设置 9

    2.2.2 命令提示符CMD的替代方案 9

    2.2.3 文本文件编辑器 11

    2.3 Go语言开发工具的选择 11

    2.3.1 LiteIDE 11

    2.3.2 Visual Studio Code加Go语言

    插件 11

    2.3.3 其他开发工具 14

    第3章 Go语言快速入门 15

    3.1 初识Go语言——编写、编译和运行 15

    3.1.1 怎样输入Go语言程序 15

    3.1.2 怎样编译Go语言程序 17

    3.1.3 怎样执行Go语言程序 18

    3.1.4 怎样查看Go语言的文档 19

    3.2 Go语言程序的组织 20

    3.2.1 Go语言中程序文件的组织方式 20

    3.2.2 非执行包与包的引用 22

    3.2.3 自己编写非执行包 23

    3.2.4 非执行包名与目录的关系 24

    3.2.5 用多级子目录组织包结构 25

    3.3 关键字等语言要素 26

    3.4 变量 26

    3.4.1 变量的基本概念 26

    3.4.2 浮点数类型的变量 28

    3.4.3 字符串类型的变量 29

    3.4.4 布尔类型的变量 29

    3.4.5 变量的命名 30

    3.4.6 变量声明和赋值的简化形式 31

    3.4.7 复合类型的变量 32

    3.4.8 变量类型的转换 34

    3.4.9 指针类型的变量 35

    3.4.10 变量的零值 36

    3.5 表达式 37

    3.6 函数(方法) 37

    3.7 自定义数据类型 40

    3.8 面向对象编程 42

    3.9 条件判断与分支 45

    3.10 循环 46

    3.11 并发处理:Go例程 48

    3.12 注释 49

    3.13 程序编译或运行时出现错误 50

    3.14 总结的代码 51

    第4章 Go语言的基本语法与

     开发基础 52

    4.1 Go语言语法要素与代码规范 52

    4.1.1 文件和字符串编码 52

    4.1.2 语句、代码块与执行顺序 53

    4.1.3 语句分隔 53

    4.1.4 语法记号 53

    4.2 代码格式化工具gofmt 54

    4.3 常用的辅助性内置函数 55

    4.3.1 内置的输出信息函数print与

    println 55

    4.3.2 获取数据长度的len函数 56

    4.3.3 获取变量容量的cap函数 57

    4.3.4 用于复合类型数据的操作函数 57

    4.3.5 用于处理异常的函数 58

    4.4 格式化输出函数fmt.Printf 58

    4.4.1 整数格式化符%d 60

    4.4.2 十六进制格式化符%x和%X 61

    4.4.3 二进制格式化符%b 62

    4.4.4 浮点数格式化符%f 62

    4.4.5 其他浮点数格式化符 63

    4.4.6 布尔类型的格式化符%t 64

    4.4.7 Unicode码相关格式化符%c、

    %q和%U 64

    4.4.8 字符串格式化符%s 65

    4.4.9 指针格式化符%p 66

    4.4.10 万能格式化符 %v 66

    4.4.11 输出数值类型的格式化符%T 68

    4.4.12 输出%字符本身 68

    4.5 获取和使用第三方包 68

    4.6 定义和使用常量 70

    4.7 变量、函数等标识符声明的作用范围 72

    4.8 tools包——编写自己的函数库 74

    第5章 用Go语言进行数学、科学

     领域的计算 76

    5.1 表达式 76

    5.1.1 最简单的表达式——单个数值 76

    5.1.2 操作符在表达式中的作用 76

    5.1.3 函数在表达式中的作用 79

    5.1.4 表达式的组合与计算的优先级 80

    5.1.5 表达式中数据类型的一致性要求 81

    5.2 用表达式进行数学计算 81

    5.2.1 体重指数 81

    5.2.2 用表达式计算体重指数 82

    5.2.3 使用命令行参数传入体重和

    身高的变量值 83

    5.3 利用系统自带的数学库进行计算 85

    5.3.1 查阅Go语言中的参考文档 85

    5.3.2 使用math.Pow函数进行平方

    计算 86

    5.3.3 用math/rand包生成随机数 87

    5.4 用Go语言进行科学计算 90

    5.4.1 向量与余弦相似度概念简介 90

    5.4.2 计算向量余弦相似度的函数 91

    5.5 使用math/big包避免计算过程中

     超大数溢出 93

    5.5.1 big包的基本使用方法 93

    5.5.2 用big包改进余弦相似度计算

    函数 94

    5.6 计算中的异常处理 95

    5.6.1 Go语言中的匿名函数 95

    5.6.2 Go语言的延迟处理机制 97

    5.6.3 Go语言的异常处理机制 98

    5.6.4 处理计算中的异常 100

    5.6.5 Go语言中异常的传递顺序 107

    5.6.6 使用runtime库输出更多的异常

    信息 108

    5.7 使用第三方包进行更复杂的数学

     计算 109

    5.7.1 Gonum包中用于矩阵运算的mat

    子包简介 109

    5.7.2 矩阵乘法的计算过程 109

    5.7.3 用gonum/mat子包实现矩阵

    乘法 110

    第6章 用Go语言开发一个

     命令行工具 113

    6.1 命令行工具简介 113

    6.2 典型命令行工具的架构 113

    6.3 基本的命令行工具clix程序框架 114

    6.4 Go语言中的switch语句 115

    6.5 clix的第一个命令:version 118

    6.6 增加体重指数计算命令calbmi 118

    6.6.1 tools包中增加判断起始

    子字符串的函数 118

    6.6.2 子字符串的截取 119

    6.6.3 tools包中增加判断标志参数的

    函数 120

    6.6.4 编写clix中的calbmi命令 120

    6.6.5 增加命令行开关标志参数 121

    6.6.6 使用flag包来分析命令行参数 123

    6.7 第三个命令:数字排序 125

    6.7.1 循环进阶 125

    6.7.2 冒泡法排序 130

    6.7.3 用双重循环实现冒泡法排序 131

    6.7.4 命令行参数中传入数字序列 131

    6.7.5 在clix程序中加入冒泡法

    排序的命令 133

    6.8 Go语言中对典型代码逻辑结构的

     支持 133

    6.8.1 基本的代码结构 134

    6.8.2 利用标签跳出或继续外层循环 134

    6.8.3 goto语句无条件跳转 136

    6.8.4 递归(调用自身函数) 137

    第7章 Go语言中的字符串处理 138

    7.1 字符串相关的基础知识 138

    7.1.1 字符串的基本概念 138

    7.1.2 byte、uint8和int8类型 138

    7.1.3 byte类型的切片([]byte)与

    string 140

    7.1.4 字符串的基本操作:取长度、

    连接、截取等 140

    7.1.5 用双引号或反引号括起字符串的

    区别 141

    7.2 字符串支持多语言编码的特殊

     处理 141

    7.2.1 UTF-8编码 142

    7.2.2 rune类型和rune类型切片 143

    7.2.3 用rune对字符串进行遍历 144

    7.3 常见的字符串操作 145

    7.3.1 判断字符串中是否含有某个子串 145

    7.3.2 获取字符串中子串的位置 146

    7.3.3 获取字符串中子串第n次出现的

    位置 146

    7.3.4 统计字符串中子串出现的次数 148

    7.3.5 判断字符串的起始或结尾子串 148

    7.3.6 比较两个字符串 149

    7.3.7 去除字符串首尾空白或其他字符 150

    7.3.8 替换字符串中的子串 152

    7.3.9 字符串大小写的转换 152

    7.3.10 切分字符串 153

    7.3.11 合并字符串切片 154

    7.3.12 生成重复子串组成的字符串 155

    7.3.13 几个Unicode操作 155

    7.4 高级字符串操作 157

    7.4.1 生成随机字符串 157

    7.4.2 用strings.Builder实现不断增长的

    字符串 159

    7.4.3 用于读取字符串内容的

    strings.Reader 161

    7.4.4 字符串与数字的相互转化 162

    7.4.5 用fmt.Sprintf实现灵活的字符串

    处理 169

    7.4.6 用fmt.Sscanf从字符串中读取

    信息 170

    第8章 Go语言中的正则表达式 173

    8.1 正则表达式的基本概念与用法 173

    8.1.1 用正则表达式判断字符串是否

    含有符合一定规则的子串 173

    8.1.2 用正则表达式从字符串中提取

    符合一定规则的子串 174

    8.1.3 用通配符“.”匹配任意字符 175

    8.1.4 贪婪与非贪婪匹配 176

    8.1.5 分组提取子串 177

    8.1.6 提取所有符合条件的带捕获组的

    匹配结果 178

    8.1.7 替换符合正则表达式的子串 179

    8.1.8 转义字符 180

    8.2 正则表达式进阶知识 181

    8.2.1 单个字符的表达 181

    8.2.2 表达字符出现的次数(数量) 184

    8.2.3 非字符匹配(位置匹配) 185

    8.2.4 正则表达式中使用标志位进行

    设置 186

    8.2.5 可选子串匹配 187

    8.2.6 非捕获组 187

    8.2.7 获取匹配到子串的索引位置 188

    8.2.8 用正则表达式分割字符串 188

    8.2.9 判断整个字符串是否匹配正则

    表达式 189

    8.2.10 按字节进行正则表达式匹配 189

    第9章 Go语言文件处理 190

    9.1 Go语言中文本文件的处理 190

    9.1.1 文本文件的编码 190

    9.1.2 文本文件的打开、读取与关闭等

    基本操作 191

    9.1.3 从较大的文本文件中读取完整

    内容 193

    9.1.4 较简单的读取完整文本的方法 194

    9.1.5 更简单的读取完整文本的方法 195

    9.1.6 从文本文件中读取指定

    数量的行 196

    9.1.7 将字符串写入文本文件 198

    9.1.8 向已有的文本文件中追加内容 199

    9.1.9 用移动文件指针的方法向

    文件中追加内容 200

    9.1.10 文件、目录的其他基本操作 201

    9.1.11 文本文件编码转换 208

    9.1.12 文本排序 215

    9.1.13 超大文本文件排序 218

    9.1.14 文本查重、去重 219

    9.2 Go语言中二进制文件的处理 219

    9.2.1 Go语言中用二进制文件存储

    数据 219

    9.2.2 自定义文件格式存储大量数据

    记录 224

    9.3 文件处理总结 227

    第10章 Go语言中数据格式的

     分析与转换 229

    10.1 常见的数据交换格式 229

    10.2 XML格式的处理 229

    10.2.1 将数据序列化成XML格式 229

    10.2.2 将XML格式的文本反序列化 232

    10.2.3 省略字段、字符字段和原始

     XML文本字段 234

    10.2.4 自行控制某数据类型的XML

     序列化/反序列化 235

    10.3 JSON格式的处理 237

    10.3.1 将数据序列化成JSON格式 237

    10.3.2 将JSON格式的文本反序列化 239

    10.3.3 JSON序列化/反序列化时使用

     描述字符串 240

    10.3.4 自行控制自定义数据类型的

     JSON序列化/反序列化 242

    10.3.5 用空接口类型实现复杂结构的

     JSON序列化 244

    10.3.6 JSON解析中空接口类型的

     应用 246

    10.3.7 使用第三方包进行JSON格式的

     序列化与反序列化 248

    第11章 Go语言的并发处理 250

    11.1 Go语言并发编程基础 250

    11.2 并发处理时的共享冲突 253

    11.3 使用通道类型实现安全的数据共享 255

    11.4 使用通道作为数据访问的令牌 257

    11.5 使用通道实现多任务的归并 258

    11.6 用select实现多通道的归并 260

    11.7 select中实现超时中止 262

    11.8 用单向通道自定义超时函数 263

    11.9 使用sync包进行传统的并发处理 265

    11.9.1 用sync.WaitGroup实现

     goroutine归并 266

    11.9.2 用锁(互斥量)实现

     goroutine同步 267

    11.9.3 用读写锁(互斥量)做“多

     读少写”型并发任务 268

    第12章 Go语言进行数据库开发 270

    12.1 Go语言进行数据库开发的一般

     方式 270

    12.2 安装SQLite数据库驱动 270

    12.3 基本的数据库操作——新建库表、

     插入记录和查询 270

    12.4 删除记录、准备SQL查询等操作 273

    12.5 获取记录条数、删除库表等操作 275

    12.6 SQL型数据库开发总结 276

    12.7 NoSQL型数据库开发示例 276

    第13章 Go语言进行网络服务的

     开发 280

    13.1 C/S架构与B/S架构的概念 280

    13.2 基于Socket通信的客户端/服务器

     模式 280

    13.3 基于TCP的Socket客户端/服务器

     系统 281

    13.4 典型的Socket服务器的例子 281

    13.5 典型的Socket客户端的例子 283

    13.6 典型的UDP服务器的例子 286

    13.7 典型的UDP客户端的例子 287

    13.8 用Go语言搭建简单的Web服务器 288

    13.9 搭建简单的文件服务器 290

    13.10 搭建静态文件型的Web网站

     服务器 290

    13.11 混合不同方式的Web服务器 293

    13.12 搭建提供网络接口服务的API

     服务器 294

    13.13 Web服务器的路由管理 297

    13.14 动态网页的生成 299

    13.15 提供HTTPS方式访问 302

    13.16 第三方的Web开发包 303

    13.17 Go语言中实现Web客户端 305

    第14章 Go语言进行绘图和图像

     处理 307

    14.1 基本的点绘图 307

    14.2 绘制曲线图 308

    14.3 绘制有填充色的形状 311

    14.4 实现渐变的填充色 314

    14.5 使用第三方库更方便实现复杂

     图形绘制 318

    14.6 绘制平滑曲线 321

    14.7 在图片上绘制文字 323

    14.8 使用freetype包进行文字绘制 326

    14.9 用image/draw包实现灵活的图像

     处理 328

    14.9.1 实现图片区域复制 328

    14.9.2 用draw.Draw函数进行颜色

     填充 333

    14.9.3 image包中的几个重要对象 333

    14.9.4 用颜色填充绘制矩形框 334

    14.9.5 将图片变成全透明 334

    14.9.6 复制原图中的区域到目标图中

     另一个区域 335

    14.9.7 使用蒙版复制不规则区域 335

    14.9.8 自定义image.Image类型的蒙版

     对象 337

    14.9.9 图片色彩空间的转换 338

    14.10 在Web中输出图像 339

    第15章 Go语言进行图形界面

     开发 343

    15.1 使用Qt开发图形界面 343

    15.1.1 Go结合Qt开发环境的搭建 343

    15.1.2 Go结合Qt开发基础示例 344

    15.1.3 部署therecipe/qt示例程序 346

    15.1.4 在goroutine中安全操作图形

     界面 347

    15.2 使用govcl包开发图形界面 355

    15.2.1 使用govcl包开发图形界面的

     基础示例 355

    15.2.2 govcl包中避免并发界面操作

     冲突 358

    15.3 Go语言中开发基于Web的图形

     界面 360

    第16章 Go语言的反射机制 361

    16.1 用反射机制获取基本类型的信息 361

    16.2 用反射获取复杂类型的信息 362

    16.3 函数的传值与传引用 363

    16.4 用反射获取结构类型(对象)的

     成员信息 364

    16.5 用反射获取空接口类型数据的

     实际类型 366

    16.6 用Kind函数获取基类型 367

    16.7 判断对象是否实现了某方法或接口 370

    16.8 动态调用对象的方法 372

    16.9 修改数据 374

    16.10 实例:JSON处理 375

    第17章 Go语言的测试与性能 378

    17.1 功能测试 378

    17.1.1 基本的功能测试 378

    17.1.2 功能测试不通过的情况 379

    17.1.3 立即中止测试用例函数 380

    17.1.4 简化的中止测试用例函数 381

    17.1.5 跳过测试用例 381

    17.1.6 进行并发测试 382

    17.1.7 指定运行的测试用例 383

    17.2 性能测试 384

    17.2.1 基本的性能测试 384

    17.2.2 根据性能测试结果进行优化和

     比对 386

    17.2.3 指定性能测试的时长 387

    17.2.4 手动控制测试计时 388

    17.2.5 测试内存分配的情况 388

    第18章 Go语言与其他语言的

     结合运用 390

    18.1 Cgo 390

    18.1.1 Go语言中直接编写C语言

     代码 390

    18.1.2 Go语言中调用C语言

     文件中的代码 393

    18.1.3 Go语言中编写函数供

     C语言调用 394

    18.1.4 Cgo的一些局限 396

    18.2 Go语言中运行其他脚本语言 396

    18.2.1 Tengo脚本语言 396

    18.2.2 实现JavaScript虚拟机的

     otto包 398

    18.2.3 实现Lua语言虚拟机的

     go-lua包 399

    18.3 Go语言中直接执行其他程序或调用

     系统命令 400

    18.3.1 调用应用程序并读取其输出 400

    18.3.2 使用管道从程序的输出中接收

     信息 402

    18.4 Go语言与WebAssembly 404
查看详情
12
相关图书 / 更多
Go语言从入门到精通
Go专家编程(第2版)
任洪彩
Go语言从入门到精通
Go编程进阶实战:开发命令行应用、HTTP应用和gRPC应用
[澳]阿米特·萨哈(Amit Saha)著 贾玉彬 刘光磊 译;上海碳泽信息科技有限公司 审校
Go语言从入门到精通
Go语言从入门到项目实战(视频版)
刘瑜 萧文翰 董树南 著
Go语言从入门到精通
Go语言从入门到项目实践(超值版)
余建熙
Go语言从入门到精通
Go语言学习指南:惯例模式与编程实践
乔恩·博德纳(Jon Bodner)
Go语言从入门到精通
Go语言程序设计-微课视频版
肖建良;赵文丽
Go语言从入门到精通
Go程序员面试笔试宝典
饶全成 欧长坤 楚秦等编著 猿媛之家 组编
Go语言从入门到精通
Go语言程序设计项目化教程(微课版)
谭旭;史律;钟祥永
Go语言从入门到精通
Go程序开发实战宝典
穆旭东 谭庆丰 楚秦 编著;猿媛之家 组编
Go语言从入门到精通
Go语言与区块链开发(计算机类普通高等教育双一流课程系列教材)
冯柳平、陈澜祯、袁贵春、卢婷婷 编
Go语言从入门到精通
Go语言Hyperledger区块链开发实战
李晓黎
Go语言从入门到精通
Go语言设计模式(双色版)
廖显东