新書推薦:
《
浪潮将至
》
售價:NT$
395.0
《
在虚无时代:与马克斯·韦伯共同思考
》
售價:NT$
260.0
《
日内交易与波段交易的资金风险管理
》
售價:NT$
390.0
《
自然信息图:一目了然的万物奇观
》
售價:NT$
640.0
《
经纬度丛书·州县之民:治乱之间的小民命运
》
售價:NT$
440.0
《
女性史:古代卷(真正意义上的女性大历史)
》
售價:NT$
560.0
《
跨代伴侣治疗
》
售價:NT$
440.0
《
精华类化妆品配方与制备手册
》
售價:NT$
990.0
|
編輯推薦: |
Go是谷歌公司为了解决重大问题而设计的一种小型编程语言。完成大型项目需要大型团队,而大型团队中团队成员的经验水平往往各不相同。Go是一种小巧却功能强大的语言,它能够被任何人理解和使用,无论其经验如何。 快速、现代的编程语言能让业余爱好者、初学者和专业人员都受益。你需要的正是这样的语言。本书针对Go语言基础知识提供了实操性的指导,使你能够掌握Go语法,使用类型和函数,探索状态和并发等更重要的概念,并通过大量练习来巩固学到的知识。 本书包括以下内容: ●切片、接口、指针和并发等重要语言概念; ●地鼠太空航行、火星探测器、文本加密以及人类繁衍模拟等7个单元实验; ●无须安装即可在Go Playground中运行的示例。 本书面向所有熟悉计算机编程以及渴望获得这一技能的人。
|
內容簡介: |
《Go语言趣学指南》是一本面向Go语言初学者的书,循序渐进地介绍了使用Go语言所必需的知识,展示了非常多生动有趣的例子,并通过提供大量练习来加深读者对书中所述内容的理解。本书共分8个单元,分别介绍变量、常量、分支和循环等基础语句,整数、浮点数和字符串等常用类型,类型、函数和方法,数组、切片和映射,结构和接口,指针、nil和错误处理方法,并发和状态保护,并且每个单元都包含相应的章节和单元测试。 《Go语言趣学指南》适合对初学Go语言有不同需求的程序员阅读。无论是刚开始学习Go语言的新手,还是想要回顾Go语言基础知识的Go语言使用者,只要是想用Go做开发,无论是开发小型脚本还是大型程序,《Go语言趣学指南》都会非常有帮助。
|
關於作者: |
内森·扬曼(Nathan Youngman)既是一位自学成才的网络开发者,也是一位终生学习概念的践行者。他是加拿大埃德蒙顿市Go聚会的组织者、Canada Learning Code的辅导教师以及狂热的地鼠玩偶摄影爱好者。 罗杰·佩珀(Roger Peppé)是一位Go贡献者,他维护着一系列开源Go项目,负责组织英国纽卡斯尔市的Go聚会,并且当前正在承担Go云端基础设施软件的相关工作。
|
目錄:
|
目录
第0单元入门
第 1章 各就各位,预备,Go! 3
1.1 什么是Go 4
1.2 Go Playground 6
1.3 包和函数 7
1.4 唯一允许的大括号放置风格 8
1.5 小结 9
实验:playground.go 10
第 1单元命令式编程
第 2章 被美化的计算器 13
2.1 执行计算 13
2.2 格式化输出 15
2.3 常量和变量 16
2.4 走捷径 18
2.4.1 一次声明多个变量 18
2.4.2 增量并赋值操作符 18
2.5 数字游戏 19
2.6小结 20
实验:malacandra.go 21
第3章 循环和分支 22
3.1 真或假 23
3.2 比较 24
3.3 使用if实现分支判断 25
3.4 逻辑运算符 26
3.5 使用switch实现分支判断 28
3.6 使用循环实现重复执行 30
3.7 小结 31
实验:guess.go 32
第4章 变量作用域 33
4.1 审视作用域 34
4.2 简短声明 35
4.3 作用域的范围 37
4.4 小结 39
实验:random-dates.go 39
第5章 单元实验:前往火星的航行票 40
第 2单元类型
第6章 实数 45
6.1 声明浮点类型变量 46
6.1.1 单精度浮点数 47
6.1.2 零值 47
6.2 打印浮点类型 48
6.3 浮点精确性 49
6.4 比较浮点数 51
6.5 小结 51
实验:piggy.go 52
第7章 整数 53
7.1 声明整数类型变量 54
7.1.1 为不同场合而设的整数类型 54
7.1.2 了解类型 56
7.2 为8位颜色使用uint8类型 56
7.3 整数回绕 58
7.3.1 聚焦二进制位 58
7.3.2 避免时间回绕 60
7.4 小结 61
实验:piggy.go 62
第8章 大数 63
8.1 击中天花板 63
8.2 big包 65
8.3 大小非同寻常的常量 66
8.4 小结 68
实验:cains.go 68
第9章 多语言文本 69
9.1 声明字符串变量 70
9.2 字符、代码点、符文和字节 71
9.3 拉弦 73
9.4 使用凯撒加密法处理字符 73
9.5 将字符串解码为符文 76
9.6 小结 77
实验:caesar.go 78
实验:international.go 78
第 10章 类型转换 79
10.1 类型不能混合使用 79
10.2 数字类型转换 81
10.3 类型转换的危险之处 82
10.4 字符串转换 83
10.5 转换布尔值 85
10.6 小结 86
实验:input.go 86
第 11章 单元实验:维吉尼亚加密法 87
实验:decipher.go 88
实验:cipher.go 89
第3单元构建块
第 12章 函数 93
12.1 函数声明 94
12.2 编写函数 97
12.3 小结 99
实验:functions.go 99
第 13章 方法 100
13.1 声明新类型 101
13.2 引入自定义类型 102
13.3 通过方法为类型添加行为 103
13.4 小结 105
实验:methods.go 106
第 14章 一等函数 107
14.1 将函数赋值给变量 108
14.2 将函数传递给其他函数 109
14.3 声明函数类型 110
14.4 闭包和匿名函数 111
14.5 小结 113
实验:calibrate.go 114
第 15章 单元实验:温度表 115
第4单元收集器
第 16章 劳苦功高的数组 119
16.1 声明数组并访问其元素 119
16.2 小心越界 121
16.3 使用复合字面量初始化数组 121
16.4 迭代数组 122
16.5 数组被复制 123
16.6 由数组组成的数组 125
16.7 小结 125
实验:chess.go 126
第 17章 切片:指向数组的窗口 127
17.1 切分数组 128
17.2 切片的复合字面量 130
17.3 切片的威力 130
17.4 带有方法的切片 132
17.5 小结 133
实验:terraform.go 133
第 18章 更大的切片 134
18.1 append函数 134
18.2 长度和容量 135
18.3 详解append函数 136
18.4 三索引切分操作 137
18.5 使用make函数对切片实行预分配 138
18.6 声明可变参数函数 139
18.7 小结 140
实验:capacity.go 140
第 19章 无所不能的映射 141
19.1 声明映射 142
19.2 映射不会被复制 143
19.3 使用make函数对映射实行预分配 144
19.4 使用映射进行计数 145
19.5 使用映射和切片实现数据分组 146
19.6 将映射用作集合 147
19.7 小结 148
实验:words.go 148
第 20章 单元实验:切片人生 150
20.1 开天辟地 150
20.1.1 观察世界 151
20.1.2 激活细胞 151
20.2 适者生存 152
20.2.1 存活还是死亡 152
20.2.2 统计邻近细胞 152
20.2.3 游戏逻辑 153
20.3 平行世界 153
第5单元状态与行为
第 21章 结构 157
21.1 声明结构 157
21.2 通过类型复用结构 159
21.3 通过复合字面量初始化结构 159
21.4 结构被复制 161
21.5 由结构组成的切片 161
21.6 将结构编码为JSON 162
21.7 使用结构标签定制JSON 164
21.8 小结 165
实验:landing.go 165
第 22章 Go没有类 166
22.1 将方法绑定到结构 166
22.2 构造函数 168
22.3 类的替代品 169
22.4 小结 171
实验:landing.go 171
实验:distance.go 171
第 23章 组合与转发 173
23.1 合并结构 174
23.2 实现自动的转发方法 176
23.3 命名冲突 178
23.4 小结 180
实验:gps.go 180
第 24章 接口 181
24.1 接口类型 182
24.2 探索接口 185
24.3 满足接口 187
24.4 小结 189
实验:marshal.go 189
第 25章 单元实验:火星上的动物避难所 190
第6单元 深入Go语言
第 26章 关于指针的二三事 195
26.1 &和* 196
26.2 指针的作用就是指向 199
26.2.1 指向结构的指针 201
26.2.2 指向数组的指针 202
26.3 实现修改 203
26.3.1 将指针用作形参 203
26.3.2 指针接收者 204
26.3.3 内部指针 206
26.3.4 修改数组 207
26.4 隐式指针 208
26.4.1 映射也是指针 208
26.4.2 切片指向数组 208
26.5 指针和接口 209
26.6 明智地使用指针 210
26.7 小结 211
实验:turtle.go 211
第 27章 关于nil的纷纷扰扰 212
27.1 通向惊恐的nil指针 213
27.2 保护你的方法 214
27.3 nil函数值 216
27.4 nil切片 217
27.5 nil映射 218
27.6 nil接口 218
27.7 nil之外的另一个选择 219
27.8 小结 220
实验:knights.go 221
第 28章 孰能无过 222
28.1 处理错误 223
28.2 优雅的错误处理 224
28.2.1 文件写入 225
28.2.2 关键字defer 227
28.2.3 创造性的错误处理 228
28.3 新的错误 229
28.3.1 按需返回错误 231
28.3.2 自定义错误类型 232
28.4 不要惊恐 235
28.4.1 其他语言中的异常 235
28.4.2 如何引发惊恐 236
28.4.3 处理惊恐 237
28.5 小结 237
实验:url.go 238
第 29章 单元实验:数独规则 239
第7单元并发编程
第30章 goroutine和并发 243
30.1 启动goroutine 244
30.2 不止一个goroutine 245
30.3 通道 247
30.4 使用select处理多个通道 249
30.5 阻塞和死锁 251
30.6 地鼠装配线 252
30.7 小结 256
实验:remove-identical.go 256
实验:split-words.go 256
第31章 并发状态 257
31.1 互斥锁 258
31.2 长时间运行的工作进程 262
31.3 小结 267
实验:positionworker.go 268
实验:rover.go 268
第32章 单元实验:寻找火星生命 269
32.1 可供活动的网格 269
32.2 报告发现 270
结语:何去何从 273
习题答案(网上下载)
|
|