管理体系详细:根据142个实例,包揽Go語言的关键作用
由浅入深:从基础英语的语法到网络编程,条理清楚,明显提高
好用参照:包含18个常见标准库,深度1解读Go的实战经验
基本原理分析:深层次了解Go語言源代码保持,掌握程序流程提升方式
《Go语言编程入门与实战技巧》从內容上分成三绝大多数,*一部分关键详细介绍Go語言的基本知识,包含Go語言的安裝和开发环境,详细介绍了Go語言的特点与合适的情景,随后解读了Go語言的程序结构和数据类型,并对于涵数和某些关键词的使用方法与数据类型的启用基本原理干了论述。其次一部分详细介绍了Go語言数据结构和标准库,联系实际应用领域讨论了平时环境会碰到的难题与解决方案。最后一部分关键详细介绍Go語言的检测工具和使用方法,并重中之重解读了Go語言的运行内存管理模式,深层次了解Go語言的布置社会学,掌握Go語言最底层的内存管理和高并发体制,为再进一步的学习培训拿下牢靠的基本。这书合适对医学论文排版特别是在是对Go编程语言很感兴趣的初学者做为入门教程阅读文章,还合适想在Web开发设计行业有一定的发展趋势的程序员学习。
目录
- 第1章 认识Go语言 1
- 1.1 Go语言简介 1
- 1.1.1 Go语言简史 1
- 1.1.2 Go语言特性 2
- 1.1.3 谁适合使用Go语言 2
- 1.2 Go语言的开发环境部署 3
- 1.2.1 Go语言环境变量 3
- 1.2.2 在Linux上安装Go语言环境 3
- 1.2.3 在Mac OS上安装Go语言环境 5
- 1.2.4 在Windows上安装Go语言环境 5
- 1.3 Go语言的基本命令及使用 5
- 1.3.1 GOROOT结构 6
- 1.3.2 GOPATH结构 7
- 1.3.3 Go语言命令行参数 8
- 1.3.4 第一个Go语言程序 12
- 1.4 Go语言的开发工具 14
- 1.4.1 Code/Atom 14
- 1.4.2 VIM-Go 17
- 1.4.3 Gogland 18
- 1.4.4 LiteIDE 18
- 1.4.5 Cloud IDE 19
- 1.5 本章小结 23
- 第2章 程序结构 24
- 2.1 Go语言程序元素 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.2 Go语言基本概念 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.1 if判断 71
- 4.1.2 if-else判断 71
- 4.1.3 else-if判断 73
- 4.1.4 初始化子语句 74
- 4.2 选择语句 75
- 4.2.1 switch语句 75
- 4.2.2 switch初始化语句 78
- 4.2.3 select语句 79
- 4.3 循环语句 80
- 4.3.1 for的子语句 81
- 4.3.2 range子语句 82
- 4.4 延迟语句 84
- 4.5 标签 87
- 4.5.1 break 87
- 4.5.2 continue 89
- 4.5.3 goto 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.2 defer与跟踪 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.4 Go语言工具箱 154
- 7.2 自定义包 156
- 7.2.1 包的制作 157
- 7.2.2 特定平台的代码 157
- 7.2.3 godoc生成文档 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.4 Printf和反射 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.2 select 232
- 10.3.3 缓冲机制 233
- 10.3.4 超时和计时器 234
- 10.3.5 channel的传递 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.1 Socket编程 244
- 11.1.1 什么是Socket 244
- 11.1.2 Dial()函数 246
- 11.1.3 ICMP示例 247
- 11.1.4 TCP Socket 249
- 11.1.5 UDP Socket 253
- 11.2 HTTP编程 255
- 11.2.1 HTTP客户端 255
- 11.2.2 HTTP服务器端 260
- 11.3 RPC编程 262
- 11.3.1 Go RPC 263
- 11.3.2 HTTP RPC 263
- 11.3.3 TCP RPC 266
- 11.3.4 JSON RPC 268
- 11.3.5 RPC接口 271
- 11.4 数据库 272
- 11.4.1 database/sql接口 272
- 11.4.2 使用MySQL数据库 277
- 11.4.3 使用SQLite数据库 280
- 11.4.4 使用PostgreSQL数据库 282
- 11.4.5 NoSQL数据库操作 286
- 11.5 Go语言使用Cookie 287
- 11.5.1 设置Cookie 287
- 11.5.2 读取Cookie 288
- 11.6 本章小结 288
- 第12章 I/O编程 289
- 12.1 输入/输出 289
- 12.1.1 io:基本I/O接口 289
- 12.1.2 fmt:格式化I/O 292
- 12.1.3 文本处理 298
- 12.2 文件系统 298
- 12.2.1 os:系统功能实现 298
- 12.2.2 path:兼容路径操作 299
- 12.3 数据结构与算法 303
- 12.3.1 排序 304
- 12.3.2 container 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.2 XML处理 330
- 13.2.1 解析XML 330
- 13.2.2 生成XML 333
- 13.3 JSON处理 336
- 13.3.1 解析JSON 336
- 13.3.2 生成JSON 338
- 13.4 日志记录 340
- 13.4.1 Logrus 341
- 13.4.2 Seelog 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.2 TCMalloc 376
- 15.2.1 整体结构 377
- 15.2.2 小内存分配 378
- 15.2.3 CentralCache 379
- 15.2.4 大内存分配 381
- 15.3 Mspan(内存管理器) 384
- 15.4 垃圾回收 398
- 15.4.1 标记清理算法 399
- 15.4.2 标记实现 403
- 15.4.3 清理 406
- 15.4.4 监控 408
- 15.5 本章小结 408