Contents读者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv1 简介 1官方文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Hello World . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2编译和运行代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3本书使用的设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3变量、类型和关键字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3运算符和内建函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Go 关键字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8控制结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8内建函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13array、slices 和 map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19答案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 函数 26作用域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27多值返回 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28命名返回值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28延迟代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29变参 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30函数作为值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31回调 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31恐慌(Panic)和恢复(Recover) . . . . . . . . . . . . . . . . . . . . . . . . . . . 32练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33答案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 包 44标识符 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45包的文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46测试包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47常用的包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50答案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 进阶 54内存分配 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54定义自己的类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57转换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59组合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61答案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63ii Chapter: Contents5 接口 70方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72接口名字 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73简短的例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78答案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796 并发 82更多关于 channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85答案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877 通讯 90io.Reader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91一些例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91命令行参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92执行命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92网络 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93练习 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94答案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97A 版权 106贡献者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106许可证和版权 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107B 索引 108C Bibliography 110List of Exercises1 (0) For-loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 (0) FizzBuzz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 (1) 字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 (1) 平均值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 (0) 平均值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 (0) 整数顺序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 (1) 作用域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 (1) 栈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 (1) 变参 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3410 (1) 斐波那契 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3411 (1) map 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3412 (0) 最小值和最大值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3413 (1) 冒泡排序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3414 (1) 函数返回一个函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3515 (0) stack 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5016 (2) 计算器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50List of Exercises iii17 (1) 指针运算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6118 (2) 使用 interface 的 map 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6119 (1) 指针 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6120 (1) Linked List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6121 (1) Cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6122 (2) 方法调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6223 (1) 接口和编译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7824 (1) 指针和反射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7825 (2) 接口和 max() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7826 (1) Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8527 (2) 斐波那契 II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8528 (2) 进程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9429 (0) 单词和字母统计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9530 (0) Uniq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9531 (2) Quine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9532 (1) Echo 服务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9533 (2) 数字游戏 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9534 (1) *Finger 守护进程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
评论