《Go语言编程入门与实战技巧》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:黄靖钧编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121349669
  • 页数:408 页
图书介绍:本书以Go语言程序设计入门为主,深度讲解Go语言基础知识,包括基本类型、程序结构、函数、流程控制、流程控制等。之后结合Go的源码解释了Go的包概念,介绍结构体与方法、接口与反射的应用。在此基础上,拓展讲解了并发编程和网络编程,并详细讲解了常见的标准库实战技巧。本书能够帮助您快速入门Go语言程序设计,深入了解Go语言工作机制。本书侧重讲解Go语言的入门知识点,帮助读者接触Go语言的世界。同时,本书还结合实战技巧,让读者在学习过程中接触到实际的开发细节。本书实用性强,是面向新手的入门作品,可以为广大入门读者参考借鉴。本书全文使用Go最新版本(Go 1.9+)讲解。

第1章 认识Go语言 1

1.1Go语言简介 1

1.1.1Go语言简史 1

1.1.2Go语言特性 2

1.1.3谁适合使用Go语言 2

1.2Go语言的开发环境部署 3

1.2.1Go语言环境变量 3

1.2.2在Linux上安装Go语言环境 3

1.2.3在Mac OS上安装Go语言环境 5

1.2.4在Windows上安装Go语言环境 5

1.3Go语言的基本命令及使用 5

1.3.1GOROOT结构 6

1.3.2GOPATH结构 7

1.3.3Go语言命令行参数 8

1.3.4第一个Go语言程序 12

1.4Go语言的开发工具 14

1.4.1Code/Atom 14

1.4.2VIM-Go 17

1.4.3Gogland 18

1.4.4LiteIDE 18

1.4.5Cloud IDE 19

1.5本章小结 23

第2章 程序结构 24

2.1Go语言程序元素 24

2.1.1标识符 24

2.1.2关键字 25

2.1.3字面量 25

2.1.4分隔符 25

2.1.5运算符 26

2.1.6注释 27

2.2Go语言基本概念 28

2.2.1常量 28

2.2.2变量 32

2.3本章小结 37

第3章 基础数据类型 38

3.1整型 39

3.1.1整型的表示 39

3.1.2整型的运算 39

3.2浮点型 41

3.2.1浮点型的表示 41

3.2.2浮点型的运算 42

3.2.3复数 42

3.3字符与字符串 44

3.3.1字符串的表示 44

3.3.2操作字符串 46

3.3.3字符串格式化 60

3.4布尔型 61

3.4.1布尔型的表示 61

3.4.2布尔型的运算 62

3.5基本数据类型的扩展 63

3.5.1强制类型转换 63

3.5.2自定义类型 64

3.5.3类型别名 64

3.5.4指针 65

3.6本章小结 69

第4章 流程控制 70

4.1条件语句 70

4.1.1if判断 71

4.1.2if-else判断 71

4.1.3else-if判断 73

4.1.4初始化子语句 74

4.2选择语句 75

4.2.1switch语句 75

4.2.2switch初始化语句 78

4.2.3select语句 79

4.3循环语句 80

4.3.1for的子语句 81

4.3.2range子语句 82

4.4延迟语句 84

4.5标签 87

4.5.1break 87

4.5.2continue 89

4.5.3goto 90

4.6本章小结 91

第5章 函数 92

5.1认识函数 92

5.1.1函数的声明 92

5.1.2函数的参数 93

5.1.3函数的返回值 94

5.2函数的基础 95

5.2.1多返回值 96

5.2.2函数作为参数 97

5.2.3函数作为类型 98

5.2.4可变参数 99

5.2.5匿名函数与闭包 102

5.2.6递归函数 106

5.2.7内置函数 108

5.3函数进阶 108

5.3.1参数传递机制 108

5.3.2defer与跟踪 111

5.3.3错误与恢复 116

5.4本章小结 122

第6章 复合数据类型 123

6.1数组 123

6.1.1声明数组 123

6.1.2访问与修改 124

6.1.3多维数组 126

6.1.4将数组传递给函数 127

6.2切片 128

6.2.1创建数组切片 129

6.2.2切片的使用 131

6.2.3多维切片 137

6.2.4将切片传递给函数 137

6.3映射 138

6.3.1映射的实现 138

6.3.2映射的创建 139

6.3.3映射的使用 139

6.3.4将映射传递给函数 141

6.4本章小结 142

第7章 包 144

7.1包的基础 144

7.1.1包的结构 146

7.1.2包的导入 147

7.1.3包的使用 153

7.1.4Go语言工具箱 154

7.2自定义包 156

7.2.1包的制作 157

7.2.2特定平台的代码 157

7.2.3godoc生成文档 158

7.2.4包的打包与发布 159

7.2.5自定义包的导入 164

7.3本章小结 165

第8章 结构体与方法 166

8.1结构体 166

8.1.1结构体定义 166

8.1.2结构体使用 172

8.1.3带标签的结构体 175

8.1.4匿名字段和内嵌结构体 176

8.2类型系统 179

8.2.1用户自定义类型 179

8.2.2值语义和引用语义 182

8.3方法 184

8.3.1方法声明 184

8.3.2为类型添加方法 187

8.3.3工厂方法创建结构体 188

8.3.4基于指针对象的方法 190

8.3.5方法值和方法表达式 191

8.3.6方法和未导出字段 193

8.3.7嵌入类型的方法和继承 194

8.4本章小结 197

第9章 接口与反射 198

9.1接口 198

9.1.1接口是什么 199

9.1.2接口类型与约定 204

9.1.3接口实现 208

9.1.4嵌套接口 210

9.1.5接口赋值 211

9.1.6接口查询 213

9.1.7接口组合 214

9.2反射 215

9.2.1方法和类型的反射 215

9.2.2通过反射修改设置值 216

9.2.3反射结构 218

9.2.4Printf和反射 220

9.3本章小结 222

第10章 并发编程 223

10.1并发编程基础 223

10.1.1并发与并行 223

10.1.2指定使用核心数 225

10.2协程(goroutine) 227

10.2.1协程基础 228

10.2.2协程间通信 229

10.3通道(channel) 231

10.3.1基本语法 232

10.3.2select 232

10.3.3缓冲机制 233

10.3.4超时和计时器 234

10.3.5channel的传递 235

10.3.6单向channel 236

10.3.7关闭channel 237

10.4并发进阶 237

10.4.1多核并行化 237

10.4.2协程同步 239

10.4.3协程和恢复 242

10.5本章小结 243

第11章 网络编程 244

11.1Socket编程 244

11.1.1什么是Socket 244

11.1.2Dial()函数 246

11.1.3ICMP示例 247

11.1.4TCP Socket 249

11.1.5UDP Socket 253

11.2HTTP编程 255

11.2.1HTTP客户端 255

11.2.2HTTP服务器端 260

11.3RPC编程 262

11.3.1Go RPC 263

11.3.2HTTP RPC 263

11.3.3TCP RPC 266

11.3.4JSON RPC 268

11.3.5RPC接口 271

11.4数据库 272

11.4.1database/sql接口 272

11.4.2使用MySQL数据库 277

11.4.3使用SQLite数据库 280

11.4.4使用PostgreSQL数据库 282

11.4.5NoSQL数据库操作 286

11.5Go语言使用Cookie 287

11.5.1设置Cookie 287

11.5.2读取Cookie 288

11.6本章小结 288

第12章 I/O编程 289

12.1输入/输出 289

12.1.1io:基本I/O接口 289

12.1.2fmt:格式化I/O 292

12.1.3文本处理 298

12.2文件系统 298

12.2.1os:系统功能实现 298

12.2.2path:兼容路径操作 299

12.3数据结构与算法 303

12.3.1排序 304

12.3.2container 310

12.4本章小结 314

第13章 文件处理 315

13.1文件操作 315

13.1.1创建文件与查看状态 316

13.1.2重命名与移动 319

13.1.3打开与关闭 319

13.1.4删除与截断 321

13.1.5读写文件 321

13.1.6权限控制 325

13.1.7文件链接 328

13.2XML处理 330

13.2.1解析XML 330

13.2.2生成XML 333

13.3JSON处理 336

13.3.1解析JSON 336

13.3.2生成JSON 338

13.4日志记录 340

13.4.1Logrus 341

13.4.2Seelog 342

13.5压缩 343

13.5.1打包与解包 343

13.5.2压缩与解压 345

13.6本章小结 347

第14章 安全与测试 348

14.1安全 348

14.1.1安全相关的基础概念 348

14.1.2通信安全 350

14.2测试 354

14.2.1单元测试 354

14.2.2基准测试 362

14.3本章小结 368

第15章 内存管理 369

15.1内存分配 369

15.1.1内存管理基本概念 369

15.1.2逃逸分析 373

15.2TCMalloc 376

15.2.1整体结构 377

15.2.2小内存分配 378

15.2.3CentralCache 379

15.2.4大内存分配 381

15.3Mspan(内存管理器) 384

15.4垃圾回收 398

15.4.1标记清理算法 399

15.4.2标记实现 403

15.4.3清理 406

15.4.4监控 408

15.5本章小结 408