计算机书籍控

Go语言编程

国内第一本Go语言编程书
原盛大创新院研究员执笔
Go语言领域技术大牛作品
作者Go语言开发实战项目
帮助您快速入手全新语言

目录


第1章 初识Go语言 1
1.1 语言简史 1
1.2 语言特性 2
1.2.1 自动垃圾回收 3
1.2.2 更丰富的内置类型 4
1.2.3 函数多返回值 5
1.2.4 错误处理 6
1.2.5 匿名函数和闭包 6
1.2.6 类型和接口 7
1.2.7 并发编程 8
1.2.8 反射 9
1.2.9 语言交互性 10
1.3 第一个Go程序 11
1.3.1 代码解读 11
1.3.2 编译环境准备 12
1.3.3 编译程序 12
1.4 开发工具选择 13
1.5 工程管理 13
1.6 问题追踪和调试 18
1.6.1 打印日志 18
1.6.2 GDB调试 18
1.7 如何寻求帮助 18
1.7.1 邮件列表 19
1.7.2 网站资源 19
1.8 小结 19

第2章 顺序编程 20 2.1 变量 20 2.1.1 变量声明 20 2.1.2 变量初始化 21 2.1.3 变量赋值 21 2.1.4 匿名变量 22 2.2 常量 22 2.2.1 字面常量 22 2.2.2 常量定义 23 2.2.3 预定义常量 23 2.2.4 枚举 24 2.3 类型 24 2.3.1 布尔类型 25 2.3.2 整型 25 2.3.3 浮点型 27 2.3.4 复数类型 28 2.3.5 字符串 28 2.3.6 字符类型 30 2.3.7 数组 31 2.3.8 数组切片 32 2.3.9 map 36 2.4 流程控制 38 2.4.1 条件语句 38 2.4.2 选择语句 39 2.4.3 循环语句 40 2.4.4 跳转语句 41 2.5 函数 41 2.5.1 函数定义 42 2.5.2 函数调用 42 2.5.3 不定参数 43 2.5.4 多返回值 45 2.5.5 匿名函数与闭包 45 2.6 错误处理 47 2.6.1 error接口 47 2.6.2 defer 48 2.6.3 panic()和recover() 49 2.7 完整示例 50 2.7.1 程序结构 51 2.7.2 主程序 51 2.7.3 算法实现 54 2.7.4 主程序 57 2.7.5 构建与执行 59 2.8 小结 61

第3章 面向对象编程 62 3.1 类型系统 62 3.1.1 为类型添加方法 63 3.1.2 值语义和引用语义 66 3.1.3 结构体 67 3.2 初始化 68 3.3 匿名组合 68 3.4 可见性 71 3.5 接口 71 3.5.1 其他语言的接口 71 3.5.2 非侵入式接口 73 3.5.3 接口赋值 74 3.5.4 接口查询 76 3.5.5 类型查询 78 3.5.6 接口组合 78 3.5.7 Any类型 79 3.6 完整示例 79 3.6.1 音乐库 80 3.6.2 音乐播放 82 3.6.3 主程序 84 3.6.4 构建运行 86 3.6.5 遗留问题 86 3.7 小结 87 第4章 并发编程 88 4.1 并发基础 88 4.2 协程 90 4.3 goroutine 90 4.4 并发通信 91 4.5 channel 94 4.5.1 基本语法 95 4.5.2 select 95 4.5.3 缓冲机制 96 4.5.4 超时机制 97 4.5.5 channel的传递 98 4.5.6 单向channel 98 4.5.7 关闭channel 99 4.6 多核并行化 100 4.7 出让时间片 101 4.8 同步 101 4.8.1 同步锁 101 4.8.2 全局唯一性操作 102 4.9 完整示例 103 4.9.1 简单IPC框架 105 4.9.2 中央服务器 108 4.9.3 主程序 113 4.9.4 运行程序 116 4.10 小结 117

第5章 网络编程 118 5.1 Socket编程 118 5.1.1 Dial()函数 118 5.1.2 ICMP示例程序 119 5.1.3 TCP示例程序 121 5.1.4 更丰富的网络通信 122 5.2 HTTP编程 124 5.2.1 HTTP客户端 124 5.2.2 HTTP服务端 130 5.3 RPC编程 132 5.3.1 Go语言中的RPC支持与处理 132 5.3.2 Gob简介 134 5.3.3 设计优雅的RPC接口 134 5.4 JSON处理 135 5.4.1 编码为JSON格式 136 5.4.2 解码JSON数据 137 5.4.3 解码未知结构的JSON数据 138 5.4.4 JSON的流式读写 140 5.5 网站开发 140 5.5.1 最简单的网站程序 141 5.5.2 net/http包简介 141 5.5.3 开发一个简单的相册网站 142 5.6 小结 157

第6章 安全编程 158 6.1 数据加密 158 6.2 数字签名 158 6.3 数字证书 159 6.4 PKI体系 159 6.5 Go语言的哈希函数 159 6.6 加密通信 160 6.6.1 加密通信流程 161 6.6.2 支持HTTPS的Web服务器 162 6.6.3 支持HTTPS的文件服务器 165 6.6.4 基于SSL/TLS的ECHO程序 166 6.7 小结 169

第7章 工程管理 170 7.1 Go命令行工具 170 7.2 代码风格 172 7.2.1 强制性编码规范 172 7.2.2 非强制性编码风格建议 173 7.3 远程import支持 175 7.4 工程组织 175 7.4.1 GOPATH 176 7.4.2 目录结构 176 7.5 文档管理 177 7.6 工程构建 180 7.7 跨平台开发 180 7.7.1 交叉编译 181 7.7.2 Android支持 182 7.8 单元测试 183 7.9 打包分发 184 7.10 小结 184

第8章 开发工具 186 8.1 选择开发工具 186 8.2 gedit 187 8.2.1 语法高亮 187 8.2.2 编译环境 187 8.3 Vim 188 8.4 Eclipse 189 8.5 Notepad++ 192 8.5.1 语法高亮 192 8.5.2 编译环境 192 8.6 LiteIDE 193 8.7 小结 195

第9章 进阶话题 196 9.1 反射 196 9.1.1 基本概念 196 9.1.2 基本用法 197 9.1.3 对结构的反射操作 199 9.2 语言交互性 199 9.2.1 类型映射 200 9.2.2 字符串映射 201 9.2.3 C程序 201 9.2.4 函数调用 202 9.2.5 编译Cgo 203 9.3 链接符号 203 9.4 goroutine机理 204 9.4.1 协程 204 9.4.2 协程的C语言实现 205 9.4.3 协程库概述 205 9.4.4 任务 208 9.4.5 任务调度 210 9.4.6 上下文切换 211 9.4.7 通信机制 215 9.5 接口机理 216 9.5.1 类型赋值给接口 217 9.5.2 接口查询 223 9.5.3 接口赋值 224

附录A 225

书籍下载

免费下载

正版书籍

Go语言编程