第1 章 走进Go………………………… 1
1.1 Go 编程语言概述… ………………… 1
1.1.1 Go 的历史… ……………………… 1
1.1.2 Go 语言特性及应用场景… ……… 2
1.1.3 使用Go 语言的项目… …………… 3
1.2 Go 语言官方文档… ………………… 4
1.3 学好Go 的建议… …………………… 5
1.4 常用软件及网站……………………… 6
1.5 小结…………………………………… 7
第2 章 安装和运行Go … …………… 8
2.1 GOROOT 和GOPATH……………… 8
2.2 在Windows 下安装Go……………… 9
2.3 在Linux 下安装Go… ……………… 11
2.4 在Mac OS 下安装Go… …………… 12
2.5 安装开发工具………………………… 13
2.5.1 GoLand 下载… …………………… 13
2.5.2 GoLand 安装… …………………… 13
2.5.3 GoLand 使用… …………………… 16
2.6 编写个Go 程序… ……………… 19
2.6.1 GoLand 编写… …………………… 19
2.6.2 文本编辑器编写…………………… 20
2.7 小结…………………………………… 21
第3 章 基本变量与类型 … ………… 22
3.1 Go 语言变量… ……………………… 22
3.1.1 声明变量…………………………… 22
3.1.2 初始化变量………………………… 23
3.1.3 变量值交换………………………… 25
3.1.4 匿名变量…………………………… 26
3.2 Go 语言数据类型… ………………… 27
3.2.1 整型………………………………… 27
3.2.2 浮点型……………………………… 28
3.2.3 字符串……………………………… 29
3.2.4 字符和转义字符…………………… 30
3.2.5 布尔型……………………………… 31
3.2.6 数据类型判断……………………… 31
3.2.7 数据类型转换……………………… 32
3.3 指针…………………………………… 34
3.3.1 声明指针…………………………… 34
3.3.2 取变量地址………………………… 34
3.3.3 获取指针所指向的内容…………… 35
3.3.4 使用指针修改值…………………… 36
3.4 其他数据类型………………………… 37
3.5 小结…………………………………… 38
3.6 知识拓展……………………………… 38
3.6.1 字符串的应用……………………… 38
3.6.2 Go 语言注释… …………………… 43
第4 章 常量与运算符 … …………… 44
4.1 常量…………………………………… 44
4.1.1 常量的定义………………………… 44
4.1.2 常量组的定义……………………… 45
4.1.3 常量枚举…………………………… 46
4.2 运算符………………………………… 47
4.2.1 算术运算符………………………… 47
4.2.2 比较运算符………………………… 49
4.2.3 赋值运算符………………………… 50
4.2.4 位运算符…………………………… 51
4.2.5 逻辑运算符………………………… 52
4.2.6 其他运算符………………………… 53
4.3 小结…………………………………… 54
4.4 知识拓展……………………………… 54
第5 章 流程控制…………………… 56
5.1 if 判断… ……………………………… 56
5.2 循环控制……………………………… 58
5.2.1 for 循环……………………………… 58
5.2.2 break 跳出循环… ………………… 59
5.2.3 continue 继续循环… ……………… 61
5.3 switch 分支…………………………… 61
5.4 goto 跳转……………………………… 63
5.5 小结…………………………………… 64
5.6 知识拓展……………………………… 64
5.6.1 斐波那契数列……………………… 64
5.6.2 循环嵌套…………………………… 67
第6 章 Go 语言内置容器…………… 69
6.1 数组…………………………………… 69
6.1.1 声明数组…………………………… 70
6.1.2 初始化数组………………………… 70
6.1.3 range 关键字… …………………… 71
6.1.4 遍历数组…………………………… 72
6.2 切片…………………………………… 72
6.2.1 从数组生成一个新的切片………… 73
6.2.2 从切片生成一个新的切片………… 74
6.2.3 直接生成一个新的切片…………… 75
6.2.4 为切片添加元素…………………… 77
6.2.5 从切片删除元素…………………… 79
6.2.6 遍历切片…………………………… 80
6.3 映射…………………………………… 81
6.3.1 声明映射…………………………… 81
6.3.2 初始化映射………………………… 82
6.3.3 遍历映射…………………………… 83
6.3.4 从映射中删除键值对……………… 84
6.4 小结…………………………………… 85
6.5 知识拓展……………………………… 86
第7 章 函数………………………… 90
7.1 声明函数……………………………… 90
7.1.1 函数参数的简写…………………… 91
7.1.2 函数返回值的简写………………… 91
7.1.3 带有变量名的返回值……………… 92
7.2 使用函数……………………………… 92
7.3 函数变量……………………………… 93
7.4 可变参数……………………………… 95
7.4.1 可变参数函数的使用……………… 95
7.4.2 可变参数与内置函数……………… 96
7.4.3 可变参数的传递…………………… 96
7.5 匿名函数和闭包……………………… 98
7.5.1 定义和使用匿名函数……………… 98
7.5.2 闭包的定义………………………… 99
7.5.3 闭包的“记忆力”………………… 99
7.6 延迟执行语句……………………… 101
7.7 小结………………………………… 103
7.8 知识拓展…………………………… 103
7.8.1 函数参数传递的本质…………… 103
7.8.2 Go 内置函数… ………………… 106