新書推薦:
《
诛吕:“诸吕之乱”的真相与吕太后时期的权力结构
》
售價:HK$
99.7
《
炙野(全2册)
》
售價:HK$
78.2
《
女人的胜利
》
售價:HK$
55.9
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
266.6
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
53.8
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:HK$
80.6
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:HK$
87.4
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
66.1
|
編輯推薦: |
本书从Go语言基本语法出发,结合示例代码,详细讲解数组、切片、函数、结构体、接口以及面向对象编程等知识点,*后通过一个实战项目来说明如何从头到尾搭建一个并发聊天程序。本书配有源码、课件、开发环境和教学视频。
|
內容簡介: |
Go语言在多核硬件架构、超大规模分布式计算集群和Web应用上具有明显的优势,目前Google、Facebook、AWS、Mozilla、七牛、阿里、腾讯、百度、*等大公司都已经开始使用Go语言开发其云计算产品。 本书分为12章,第1章介绍Go语言的基本开发环境;第2章介绍Go语言的语法基础;第3章介绍Go语言的函数;第4章介绍Go语言的流程控制与错误处理;第5章介绍Go语言中的结构体、数组、切片和字典等;第6章介绍Go语言中的指针;第7章介绍Go语言的面向对象用法;第8章介绍Go语言文件读写;第9章介绍Go语言的并发编程;第10章介绍Go语言的反射特性;第11章介绍Go语言如何构建Web服务;第12章用Go语言实现了一个并发聊天实战项目。本书配套源码、课件、开发环境和教学视频。 本书内容详尽、示例丰富,是一本Go语言的入门教材,非常适合有一定编程基础的读者学习使用。当然,本书也适合对编程感兴趣的读者学习。同时,本书也非常适合高等院校的师生学习阅读,可作为高等院校计算机及相关专业的教材。
|
關於作者: |
汪明,硕士,徐州软件协会副理事长,某创业公司合伙人。从事软件行业十余年,发表论文数十篇,擅长JavaScript、C、Java、等传统语言,也擅长TypeScript、Go等新语言。著有图书《TypeScript实战》。
|
目錄:
|
第1章 搭建Go开发环境 1
1.1 Go的语言特性 1
1.2 安装 4
1.2.1 Windows下安装Go 5
1.2.2 Linux下安装Go 7
1.3 配置环境变量 7
1.3.1 Windows下的环境变量配置 7
1.3.2 Linux下的环境变量配置 8
1.4 第一个Go程序 9
1.4.1 搭建本书项目代码结构 9
1.4.2 创建并运行第一个Go程序 10
1.4.3 Go程序的编译 11
1.4.4 Go的帮助系统 12
1.5 运行时 15
1.6 编译器 16
1.6.1 词法分析和语法分析 17
1.6.2 类型检查 17
1.6.3 生成SSA中间代码 17
1.6.4 生成机器代码 18
1.7 Go程序的集成开发环境 18
1.8 演练:Exit自动退出程序 23
1.9 本章小结 25
第2章 Go程序的基础要素 26
2.1 命名规范 26
2.2 包 27
2.2.1 包的导入 29
2.2.2 包的嵌套 32
2.2.3 特殊的init函数 33
2.3 数据类型 35
2.3.1 字符串类型 36
2.3.2 数值类型 38
2.3.3 布尔类型 39
2.3.4 派生类型 40
2.4 常量 40
2.5 变量 42
2.6 运算符 44
2.6.1 算术运算符 44
2.6.2 关系运算符 45
2.6.3 逻辑运算符 46
2.6.4 位运算符 47
2.6.5 赋值运算符 48
2.6.6 特殊运算符 49
2.6.7 运算符的优先级 50
2.7 注释 50
2.8 类型转换 51
2.9 演练:原子计算器 54
2.10 小结 55
第3章 函数 56
3.1 函数的结构 57
3.1.1 Go语言函数的基本结构 57
3.1.2 函数中的变量存储(堆栈) 58
3.1.3 函数返回函数 60
3.2 函数返回多个值的特性 61
3.3 作用域 62
3.4 匿名函数 63
3.4.1 匿名函数的即时调用 63
3.4.2 匿名函数的重复调用 64
3.5 变长函数 65
3.6 递归函数 66
3.6.1 使用递归函数求解斐波那契数列 66
3.6.2 使用循环代替递归的方法 67
3.7 回调函数 68
3.8 闭包 70
3.9 defer关键字 71
3.10 演练:原子计算器2.0迭代版 72
3.11 小结 74
第4章 流程控制与错误处理 75
4.1 if判断 75
4.1.1 if语句的基本语法 75
4.1.2 if语句中的变量作用域 77
4.2 switch条件判断语句 78
4.2.1 switch语句中的基本语法 78
4.2.2 fallthrough穿透 80
4.2.3 case多个表达式 81
4.2.4 switch省略判断条件 82
4.3 for循环语句 83
4.4 break与continue 85
4.5 Go的错误处理机制 86
4.5.1 error 86
4.5.2 panic 87
4.6 演练:哲学的三段论 88
4.7 小结 93
第5章 复合数据类型 94
5.1 type关键字 94
5.2 struct类型 97
5.2.1 声明struct 98
5.2.2 struct作为函数的参数 100
5.2.3 给struct定义方法 102
5.2.4 struct嵌套 102
5.3 匿名struct类型 103
5.4 数组 106
5.4.1 创建数组 106
5.4.2 数组作为函数的参数 108
5.4.3 二维数组 110
5.4.4 数组元素是struct 111
5.5 切片 112
5.5.1 切片的内部实现 113
5.5.2 切片的切割 115
5.5.3 切片的扩容 118
5.5.4 切片作为函数的参数 120
5.6 字典 122
5.6.1 创建字典 122
5.6.2 字典作为函数的参数 123
5.7 range关键字 124
5.8 演练:内存数据库 126
5.9 小结 135
第6章 指针 136
6.1 内存地址 136
6.2 指针的应用 141
6.2.1 什么是指针 141
6.2.2 声明指针 142
6.2.3 关键字new 142
6.2.4 获取元素地址 143
6.2.5 unsafe包 145
6.2.6 指针的指针 147
6.3 野指针 148
6.4 值传参与地址传参 149
6.5 演练:Go单向链表的实现 151
6.6 小结 157
第7章 面向对象和接口 158
7.1 结构体实现封装 158
7.2 组合实现继承 161
7.3 接口实现 163
7.4 类型判断与断言 166
7.5 接口实现多态 169
7.6 演练:SQL生成器的实现 171
7.7 小结 179
第8章 文件读写 180
8.1 文件读取 180
8.1.1 整块读取 180
8.1.2 分字节读取 183
8.1.3 分行读取 185
8.2 文件写入 187
8.2.1 整块写入 187
8.2.2 分字节写入 189
8.2.3 分行写入 191
8.3 自己开发io包下的读写接口 192
8.4 目录操作 195
8.4.1 目录的基本操作 195
8.4.2 目录的遍历 197
8.5 演练:property配置文件的操作 198
8.6 小结 200
第9章 图解并发编程 201
9.1 单核并发 202
9.2 锁机制 207
9.3 并行多核并行 211
9.4 Go调度器 216
9.5 协程 218
9.6 协程间通信 223
9.6.1 共享变量 223
9.6.2 信道 224
9.7 无缓冲信道 225
9.8 有缓冲信道 232
9.9 信道和缓冲生成IO流 235
9.10 协程调试 236
9.10.1 死锁 236
9.10.2 数据竞争 237
9.10.3 协程泄漏 240
9.11 协程性能测试 244
9.11.1 Go语言自带的测试工具 244
9.11.2 性能测试工具pprof 246
9.11.3 追踪分析工具go tool trace 249
9.12 演练:单机MapReduce单词统计 252
9.13 小结 258
第10章 反射 259
10.1 反射的概念和基本用法 259
10.2 获取结构体字段和方法 265
10.3 反射动态修改值 268
10.4 获取结构体字段标识 270
10.5 判断是否实现接口 272
10.6 动态调用方法 274
10.7 演练:ORM基本实现 276
10.8 小结 282
第11章 Go的Web服务 283
11.1 HTTPHTTPS 283
11.1.1 HTTP协议原理 284
11.1.2 HTTPS协议原理 285
11.1.3 Go语言的nethttp包 286
11.1.4 使用Go语言构建HTTP Web服务程序 287
11.2 WebSocket 294
11.2.1 WebSocket协议原理 294
11.2.2 使用Go语言实现WebSocket服务端 296
11.2.3 使用Go语言实现WebSocket客户端 298
11.3 SSE 299
11.3.1 SSE技术原理 299
11.3.2 使用Go语言实现SSE通信 300
11.4 演练:构建自己的Web服务器 305
11.5 小结 313
第12章 实战:并发聊天 314
12.1 需求描述 314
12.2 需求分析 315
12.3 技术选型 316
12.4 架构 317
12.5 代码分析 319
12.6 小结 334
|
內容試閱:
|
Go语言是什么?谷歌出品,必属精品。
Go语言是谷歌公司开发的一款开源的系统编程语言,被称为面向21世纪的C语言,在多核硬件架构、超大规模分布式计算集群和Web应用上具有明显的优势,原生支持并发、性能卓越、开发效率高,目前已经在众多大型互联网企业的云产品中使用。
Go语言有哪些优势?Go语言就是为并发而生的。
Go语言是静态类型语言,可直接编译成机器码,性能接近C和C,开发效率接近于Python等动态语言,因此Go语言非常完美地兼顾了性能和开发效率。Go语言代码简洁、格式统一,且原生支持并发,可以快速开发出高并发的服务端应用程序。
Go语言可以干什么?只要敢想,Go语言让一切皆有可能。
Go语言具有跨平台的特性,由于从语言层面支持指针和并发,且标准库中的网络库提供的功能已经非常完备,因此可以用Go语言进行系统编程、网络编程、服务器编程和分布式编程。大名鼎鼎的Docker就是用Go语言编写的。
本书真的适合你吗?如果你对编程有一定兴趣,了解基本的编程知识,心怀用代码改变世界的理想,励志构建高并发、可扩展、易维护的Web应用,那么本书将适合你。
本书作为Go语言的入门教材,由浅入深地介绍Go语言的基本语法,特别对并发进行了详细的说明,最后结合实战项目将各个知识点进行有机整合,做到理论联系实际。
怕Go语言学不会?Go比Java和C#更容易学习,借助IDE开发工具,可以非常方便地进行代码编写和调试。
本书特点
? 理论联系实际,先从基本语法出发,然后对数组、切片、函数、结构体、接口以及面向对象编程等知识点进行讲解,并结合代码进行阐述,最后通过一个实战项目来说明如何从头到尾搭建一个并发聊天程序。
? 深入浅出、轻松易学,以实例为主线,激发读者的阅读兴趣,让读者能够真正掌握Go语言最实用、最前沿的技术。
? 技术新颖、与时俱进,结合时下最热门的技术,如并发、Web服务(Web API、Web Socket、SSE)等,同时兼顾基础,如数据类型、包、变量、常量、运算符、注释、类型转换。
? 贴心提醒,本书根据需要在各章使用了很多注意小栏目,让读者可以在学习过程中更轻松地理解相关知识点及概念。
源码、课件、开发环境和教学视频下载
本书配套资源包括源码、课件、开发环境和教学视频,请扫描下面二维码获取。
如果下载有问题,请联系booksaga@163.com,邮件主题为Go并发编程实战。
本书作者
汪明,硕士,毕业于中国矿业大学,徐州软件协会副理事长,某创业公司合伙人,从事软件行业十余年,发表论文数十篇,著有《TypeScript实战》一书。
作 者
2020年6月
|
|