-
内容大纲
艾伦A.A.多诺万、布莱恩W.柯尼汉著的《Go程序设计语言》是Go程序员的权威教程,旨在帮助人们熟练掌握Go语言并充分利用Go的语言特性和标准库来撰写清晰、高效的程序。从而解决现实问题。
第1章介绍Go语言的基础概念,通过十几个完成日常任务(包括读写文件、格式化文本、创建图像以及在Inlernet客户端和服务器之间通信)的程序来介绍这门语言。
接下来讲述Go程序的组成元素(语法、控制流、数据类型),以及程序的组织(包、文件和函数);后面的几章详细解释了包机制.以及如何高效地利用go工具来构建、测试和维护项目。
第6章和第7章介绍Go如何以一种不同寻常的方式来实现面向对象的程序设计,其中方法可以关联到任何用户定义的类型。具体类型和抽象类型(即接口)之间的关系是隐式的,所以一个具体类型可能会实现该类型设计者所没有意识到的接口。
第8章和第9章深入讨论并发性方面的重要内容。第8章介绍goroutine和通道的基本机制,并解释CSP模型。第9章讨论并发性中较传统的内容。使用共享变量来实现并发。
最后两章探讨Go的低级特性。第12章讲解使用反射的元编程艺术。第13章展示如何运用unsafe包来绕过Go的类型系统.以及如何使用cgo工具来调用C代码。
本书包含规范的代码.配有数百个典型示例,涵盖整个Go语言及其最重要的包和广泛的应用。每章都附有一定数量的练习。可以帮助读者加深对Go基础知识的理解。 -
作者介绍
-
目录
出版者的话
译者序
前言
第1章入门
1.1 hello,world
1.2 命令行参数
1.3 找出重复行
1.4 GIF动画
1.5 获取一个URL
1.6 并发获取多个URL
1.7 一个Web服务器
1.8 其他内容
第2章 程序结构
2.1 名称
2.2 声明
2.3 变量
2.3.1 短变量声明
2.3.2 指针
2.3.3 new函数
2.3.4 变量的生命周期
2.4 赋值
2.4.1 多重赋值
2.4.2 可赋值性
2.5 类型声明
2.6 包和文件
2.6.1 导入
2.6.2 包初始化
2.7 作用域
第3章 基本数据
3.1 整数
3.2 浮点数
3.3 复数
3.4 布尔值
3.5 字符串
3.5.1 字符串字面量
3.5.2 Unicode
3.5.3 UTF-8
3.5.4 字符串和字节slice
3.5.5 字符串和数字的相互转换
3.6 常量
3.6.1 常量生成器iota
3.6.2 无类型常量
第4章 复合数据类型
4.1 数组
4.2 slice
4.2.1 append函数
4.2.2 slice就地修改
4.3 map
4.4 结构体
4.4.1 结构体字面量
4.4.2 结构体比较
4.4.3 结构体嵌套和匿名成员
4.5 JSON
4.6 文本和HTML模板
第5章 函数
5.1 函数声明
5.2 递归
5.3 多返回值
5.4 错误
5.4.1 错误处理策略
5.4.2 文件结束标识
5.5 函数变量
5.6 匿名函数
5.7 变长函数
5.8 延迟函数调用
5.9 宕机
5.10 恢复
第6章 方法
6.1 方法声明
6.2 指针接收者的方法
6.3 通过结构体内嵌组成类型
6.4 方法变量与表达式
6.5 示例:位向量
6.6 封装
第7章 接口
7.1 接口即约定
7.2 接口类型
7.3 实现接口
7.4 使用flag.Value来解析参数
7.5 接口值
7.6 使用sort.Interface来排序
7.7 http.Handler接口
7.8 error接口
7.9 示例:表达式求值器
7.10 类型断言
7.11 使用类型断言来识别错误
7.12 通过接口类型断言来查询特性
7.13 类型分支
7.14 示例:基于标记的XML解析
7.15 一些建议
第8章 goroutine和通道
8.1 goroutine
8.2 示例:并发时钟服务器
8.3 示例:并发回声服务器
8.4 通道
8.4.1 无缓冲通道
8.4.2 管道
8.4.3 单向通道类型
8.4.4 缓冲通道
8.5 并行循环
8.6 示例:并发的Web爬虫
8.7 使用select多路复用
8.8 示例:并发目录遍历
8.9 取消
8.10 示例:聊天服务器
第9章 使用共享变量实现并发
9.1 竞态
9.2 互斥锁:sync.Mutex
9.3 读写互斥锁:sync.RWMutex
9.4 内存同步
9.5 延迟初始化:sync.Once
9.6 竞态检测器
9.7 示例:并发非阻塞缓存
9.8 goroutine与线程
9.8.1 可增长的栈
9.8.2 goroutine调度
9.8.3 GOMAXPROCS
9.8.4 goroutine没有标识
第10章 包和go工具
10.1 引言
10.2 导入路径
10.3 包的声明
10.4 导入声明
10.5 空导入
10.6 包及其命名
10.7 go工具
10.7.1 工作空间的组织
10.7.2 包的下载
10.7.3 包的构建
10.7.4 包的文档化
10.7.5 内部包
10.7.6 包的查询
第11章 测试
11.1 go test工具
11.2 Test函数
11.2.1 随机测试
11.2.2 测试命令
11.2.3 白盒测试
11.2.4 外部测试包
11.2.5 编写有效测试
11.2.6 避免脆弱的测试
11.3 覆盖率
11.4 Benchmark函数
11.5 性能剖析
11.6 Example函数
第12章 反射
12.1 为什么使用反射
12.2 reflect.Type和reflect.Value
12.3 Display:一个递归的值显示器
12.4 示例:编码S表达式
12.5 使用reflect.Value来设置值
12.6 示例:解码S表达式
12.7 访问结构体字段标签
12.8 显示类型的方法
12.9 注意事项
第13章 低级编程
13.1 unsafe.Sizeof、Alignof 和Offsetof
13.2 unsafe.Pointer
13.3 示例:深度相等
13.4 使用cgo调用C代码
13.5 关于安全的注意事项
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...