Go程序设计语言

0
(0)

Go程序设计语言

作者:艾伦A.A.多诺万

出版社:机械工业出版社

原作名:TheGoProgrammingLanguage

译者:李道兵/高博/庞向才/金鑫鑫/林齐斌

出版年:2017-5

页数:286

定价:79

丛书:计算机科学丛书

ISBN:9787111558422

内容简介
······

本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队主管Alan Donovan联袂撰写,是学习Go语言程序设计的指南。本书共13章,主要内容包括:Go的基础知识、基本结构、基本数据类型、复合数据类型、函数、方法、接口、goroutine、通道、共享变量的并发性、包、go工具、测试、反射等。

本书适合作为计算机相关专业的教材,也可供Go语言爱好者阅读。

目录
······

出版者的话

译者序

前言

第1章 入门 1

1.1 hello,world 1

1.2 命令行参数 3

1.3 找出重复行 6

1.4 GIF动画 10

1.5 获取一个URL 12

1.6 并发获取多个URL 13

1.7 一个Web服务器 14

1.8 其他内容 17

第2章 程序结构 20

2.1 名称 20

2.2 声明 21

2.3 变量 22

2.3.1 短变量声明 22

2.3.2 指针 23

2.3.3 new函数 25

2.3.4 变量的生命周期 26

2.4 赋值 27

2.4.1 多重赋值 27

2.4.2 可赋值性 28

2.5 类型声明 29

2.6 包和文件 30

2.6.1 导入 31

2.6.2 包初始化 33

2.7 作用域 34

第3章 基本数据 38

3.1 整数 38

3.2 浮点数 42

3.3 复数 45

3.4 布尔值 47

3.5 字符串 47

3.5.1 字符串字面量 49

3.5.2 Unicode 49

3.5.3 UTF-8 50

3.5.4 字符串和字节slice 53

3.5.5 字符串和数字的相互转换 56

3.6 常量 56

3.6.1 常量生成器iota 57

3.6.2 无类型常量 59

第4章 复合数据类型 61

4.1 数组 61

4.2 slice 63

4.2.1 append函数 66

4.2.2 slice就地修改 69

4.3 map 71

4.4 结构体 76

4.4.1 结构体字面量 78

4.4.2 结构体比较 80

4.4.3 结构体嵌套和匿名成员 80

4.5 JSON 82

4.6 文本和HTML模板 87

第5章 函数 92

5.1 函数声明 92

5.2 递归 93

5.3 多返回值 96

5.4 错误 98

5.4.1 错误处理策略 99

5.4.2 文件结束标识 101

5.5 函数变量 102

5.6 匿名函数 104

5.7 变长函数 110

5.8 延迟函数调用 111

5.9 宕机 115

5.10 恢复 118

第6章 方法 120

6.1 方法声明 120

6.2 指针接收者的方法 122

6.3 通过结构体内嵌组成类型 124

6.4 方法变量与表达式 127

6.5 示例:位向量 128

6.6 封装 130

第7章 接口 133

7.1 接口即约定 133

7.2 接口类型 135

7.3 实现接口 136

7.4 使用flag.Value来解析参数 139

7.5 接口值 141

7.6 使用sort.Interface来排序 144

7.7 http.Handler接口 148

7.8 error接口 152

7.9 示例:表达式求值器 154

7.10 类型断言 160

7.11 使用类型断言来识别错误 161

7.12 通过接口类型断言来查询特性 162

7.13 类型分支 164

7.14 示例:基于标记的XML解析 166

7.15 一些建议 168

第8章 goroutine和通道 170

8.1 goroutine 170

8.2 示例:并发时钟服务器 171

8.3 示例:并发回声服务器 174

8.4 通道 176

8.4.1 无缓冲通道 177

8.4.2 管道 178

8.4.3 单向通道类型 180

8.4.4 缓冲通道 181

8.5 并行循环 183

8.6 示例:并发的Web爬虫 187

8.7 使用select多路复用 190

8.8 示例:并发目录遍历 192

8.9 取消 195

8.10 示例:聊天服务器 198

第9章 使用共享变量实现并发 201

9.1 竞态 201

9.2 互斥锁:sync.Mutex 205

9.3 读写互斥锁:sync.RWMutex 208

9.4 内存同步 208

9.5 延迟初始化:sync.Once 210

9.6 竞态检测器 212

9.7 示例:并发非阻塞缓存 212

9.8 goroutine与线程 218

9.8.1 可增长的栈 219

9.8.2 goroutine调度 219

9.8.3 GOMAXPROCS 219

9.8.4 goroutine没有标识 220

第10章 包和go工具 221

10.1 引言 221

10.2 导入路径 221

10.3 包的声明 222

10.4 导入声明 223

10.5 空导入 223

10.6 包及其命名 225

10.7 go工具 226

10.7.1 工作空间的组织 227

10.7.2 包的下载 228

10.7.3 包的构建 229

10.7.4 包的文档化 231

10.7.5 内部包 232

10.7.6 包的查询 233

第11章 测试 235

11.1 go test工具 235

11.2 Test函数 236

11.2.1 随机测试 239

11.2.2 测试命令 240

11.2.3 白盒测试 242

11.2.4 外部测试包 245

11.2.5 编写有效测试 246

11.2.6 避免脆弱的测试 247

11.3 覆盖率 248

11.4 Benchmark函数 250

11.5 性能剖析 252

11.6 Example函数 254

第12章 反射 256

12.1 为什么使用反射 256

12.2 reflect.Type和reflect.Value 257

12.3 Display:一个递归的值显示器 259

12.4 示例:编码S表达式 263

12.5 使用reflect.Value来设置值 266

12.6 示例:解码S表达式 268

12.7 访问结构体字段标签 271

12.8 显示类型的方法 273

12.9 注意事项 274

第13章 低级编程 276

13.1 unsafe.Sizeof、Alignof 和Offsetof 276

13.2 unsafe.Pointer 278

13.3 示例:深度相等 280

13.4 使用cgo调用C代码 282

13.5 关于安全的注意事项 286

评论 ······

书写得还不错,但说得太浅,一点golang特性也不讲。这里面没有最关键的垃圾回收、协程原因,只写了语法的语言书,怎么能叫程序设计语言呢?

语句翻译得难懂。。。。

golang入门

百分之九十的部分翻译得很好,但另外百分之十翻译得不清楚的地方都很要命。这本书原版写得非常好,很清晰地呈现出了Go语言本身的精确、简单与优美。如果你跟我一样,是一个用理科思维学习工科知识的人,建议读英文版;如果你对一些细节不追求完全的理解就能上手,可以读这本中文版。

点击星号评分!

平均分 0 / 5. 投票数: 0

还没有投票!请为他投一票。

推荐阅读

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册