这本书从整体的写作风格来说,会以介绍 Go 语言特性为主,示例则尽量采用作者平常的实践,而不是一个没有太大实际意义的语法示范样例。
目 录第 1 章 初识 Go 语言 ........................................ 11.1 语言简史 ...................................................... 11.2 语言特性 ...................................................... 21.2.1 自动垃圾回收................................... 31.2.2 更丰富的内置类型........................... 41.2.3 函数多返回值................................... 51.2.4 错误处理 .......................................... 61.2.5 匿名函数和闭包............................... 61.2.6 类型和接口 ...................................... 71.2.7 并发编程 .......................................... 81.2.8 反射 .................................................. 91.2.9 语言交互性 .................................... 101.3 第一个 Go 程序.......................................... 111.3.1 代码解读 ........................................ 111.3.2 编译环境准备................................. 121.3.3 编译程序 ........................................ 121.4 开发工具选择 ............................................ 131.5 工程管理 .................................................... 131.6 问题追踪和调试......................................... 181.6.1 打印日志 ........................................ 181.6.2 GDB 调试 ....................................... 181.7 如何寻求帮助 ............................................ 181.7.1 邮件列表 ........................................ 191.7.2 网站资源 ........................................ 191.8 小结 ............................................................ 19第 2 章 顺序编程.............................................. 202.1 变量 ............................................................ 202.1.1 变量声明 ........................................ 202.1.2 变量初始化 .................................... 212.1.3 变量赋值 ........................................ 212.1.4 匿名变量 ........................................ 222.2 常量 ............................................................ 222.2.1 字面常量 ........................................ 222.2.2 常量定义 ........................................ 232.2.3 预定义常量 .................................... 232.2.4 枚举 ................................................ 242.3 类型 ............................................................ 242.3.1 布尔类型 ........................................ 252.3.2 整型 ................................................ 252.3.3 浮点型 ............................................ 272.3.4 复数类型 ........................................ 282.3.5 字符串 ............................................ 282.3.6 字符类型 ........................................ 302.3.7 数组 ................................................ 312.3.8 数组切片 ........................................ 322.3.9 map ................................................. 362.4 流程控制 .................................................... 382.4.1 条件语句 ........................................ 382.4.2 选择语句 ........................................ 392.4.3 循环语句 ........................................ 402.4.4 跳转语句 ........................................ 412.5 函数 ............................................................ 412.5.1 函数定义 ........................................ 422.5.2 函数调用 ........................................ 422.5.3 不定参数 ........................................ 432.5.4 多返回值 ........................................ 452.5.5 匿名函数与闭包............................. 452.6 错误处理 .................................................... 472.6.1 error 接口.................................... 472.6.2 defer............................................. 482.6.3 panic()和 recover() ............... 49图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权2 目 录2.7 完整示例 .................................................... 502.7.1 程序结构 ........................................ 512.7.2 主程序 ............................................ 512.7.3 算法实现 ........................................ 542.7.4 主程序 ............................................ 572.7.5 构建与执行 .................................... 592.8 小结 ............................................................ 61第 3 章 面向对象编程 ..................................... 623.1 类型系统 .................................................... 623.1.1 为类型添加方法............................. 633.1.2 值语义和引用语义......................... 663.1.3 结构体 ............................................ 673.2 初始化 ........................................................ 683.3 匿名组合 .................................................... 683.4 可见性 ........................................................ 713.5 接口 ............................................................ 713.5.1 其他语言的接口............................. 713.5.2 非侵入式接口 ................................ 733.5.3 接口赋值 ........................................ 743.5.4 接口查询 ........................................ 763.5.5 类型查询 ........................................ 783.5.6 接口组合 ........................................ 783.5.7 Any 类型 ........................................ 793.6 完整示例 .................................................... 793.6.1 音乐库 ............................................ 803.6.2 音乐播放 ........................................ 823.6.3 主程序 ............................................ 843.6.4 构建运行 ........................................ 863.6.5 遗留问题 ........................................ 863.7 小结 ............................................................ 87第 4 章 并发编程.............................................. 884.1 并发基础 .................................................... 884.2 协程 ............................................................ 904.3 goroutine ..................................................... 904.4 并发通信 .................................................... 914.5 channel........................................................ 944.5.1 基本语法 ........................................ 954.5.2 select........................................... 954.5.3 缓冲机制 ........................................ 964.5.4 超时机制 ........................................ 974.5.5 channel 的传递 ............................... 984.5.6 单向 channel................................... 984.5.7 关闭 channel................................... 994.6 多核并行化 .............................................. 1004.7 出让时间片 .............................................. 1014.8 同步 .......................................................... 1014.8.1 同步锁 .......................................... 1014.8.2 全局唯一性操作........................... 1024.9 完整示例 .................................................. 1034.9.1 简单 IPC 框架 .............................. 1054.9.2 中央服务器 .................................. 1084.9.3 主程序 .......................................... 1134.9.4 运行程序 ...................................... 1164.10 小结 ........................................................ 117第 5 章 网络编程............................................ 1185.1 Socket 编程............................................... 1185.1.1 Dial()函数................................. 1185.1.2 ICMP 示例程序............................ 1195.1.3 TCP 示例程序 .............................. 1215.1.4 更丰富的网络通信....................... 1225.2 HTTP 编程................................................ 1245.2.1 HTTP 客户端................................ 1245.2.2 HTTP 服务端................................ 1305.3 RPC 编程.................................................. 1325.3.1 Go 语言中的 RPC 支持与处理.............................................. 1325.3.2 Gob 简介....................................... 1345.3.3 设计优雅的 RPC 接口 ................. 1345.4 JSON 处理................................................ 1355.4.1 编码为 JSON 格式 ....................... 1365.4.2 解码 JSON 数据 ........................... 1375.4.3 解码未知结构的 JSON 数据 ....... 1385.4.4 JSON 的流式读写 ........................ 1405.5 网站开发 .................................................. 1405.5.1 最简单的网站程序....................... 1415.5.2 net/http 包简介 ....................... 1415.5.3 开发一个简单的相册网站........... 142图灵社区会员 soooldier(soooldier@live.com) 专享 尊重版权目 录 3234567891011121314151618175.6 小结 .......................................................... 157第 6 章 安全编程............................................ 1586.1 数据加密 .................................................. 1586.2 数字签名 .................................................. 1586.3 数字证书 .................................................. 1596.4 PKI 体系................................................... 1596.5 Go 语言的哈希函数................................. 1596.6 加密通信 .................................................. 1606.6.1 加密通信流程............................... 1616.6.2 支持 HTTPS 的 Web 服务器 ....... 1626.6.3 支持 HTTPS 的文件服务器......... 1656.6.4 基于 SSL/TLS 的 ECHO 程序 ..... 1666.7 小结 .......................................................... 169第 7 章 工程管理............................................ 1707.1 Go 命令行工具......................................... 1707.2 代码风格 .................................................. 1727.2.1 强制性编码规范........................... 1727.2.2 非强制性编码风格建议............... 1737.3 远程 import 支持................................... 1757.4 工程组织 .................................................. 1757.4.1 GOPATH......................................... 1767.4.2 目录结构 ...................................... 1767.5 文档管理 .................................................. 1777.6 工程构建 .................................................. 1807.7 跨平台开发 .............................................. 1807.7.1 交叉编译 ...................................... 1817.7.2 Android 支持 ................................ 1827.8 单元测试 .................................................. 1837.9 打包分发 .................................................. 1847.10 小结 ........................................................ 184第 8 章 开发工具............................................ 1868.1 选择开发工具 .......................................... 1868.2 gedit .......................................................... 1878.2.1 语法高亮 ...................................... 1878.2.2 编译环境 ...................................... 1878.3 Vim........................................................... 1888.4 Eclipse ...................................................... 1898.5 Notepad ................................................ 1928.5.1 语法高亮 ...................................... 1928.5.2 编译环境 ...................................... 1928.6 LiteIDE ..................................................... 1938.7 小结 .......................................................... 195第 9 章 进阶话题............................................ 1969.1 反射 .......................................................... 1969.1.1 基本概念 ...................................... 1969.1.2 基本用法 ...................................... 1979.1.3 对结构的反射操作....................... 1999.2 语言交互性 .............................................. 1999.2.1 类型映射 ...................................... 2009.2.2 字符串映射 .................................. 2019.2.3 C 程序........................................... 2019.2.4 函数调用 ...................................... 2029.2.5 编译 Cgo....................................... 2039.3 链接符号 .................................................. 2039.4 goroutine 机理 .......................................... 2049.4.1 协程 .............................................. 2049.4.2 协程的 C 语言实现...................... 2059.4.3 协程库概述 .................................. 2059.4.4 任务 .............................................. 2089.4.5 任务调度 ...................................... 2109.4.6 上下文切换 .................................. 2119.4.7 通信机制 ...................................... 2159.5 接口机理 .................................................. 2169.5.1 类型赋值给接口........................... 2179.5.2 接口查询 ...................................... 2239.5.3 接口赋值 ...................................... 224附录 A................................................................... 225
评论