技术教育社区
www.teccses.org

Go程序设计语言

封面

作者:(美)艾伦A.A.多诺万(AlanA

页数:286

出版社:机械工业出版社

出版日期:2017

ISBN:9787111558422

电子书格式:pdf/epub/txt

内容简介

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

作者简介

艾伦A.A.多诺万(Alarl A.A.Donovarl)

谷歌公司Go开发团队成员。他拥有剑桥大学和麻省理工学院计算机科学学位,从1 996年开始就在工业界从事软件研发和编程工作。2005年起,他开始在谷歌公司工作,从事基础架构项目研发。是谷歌软件构建工具Blaze的联合设计师。他还创建了用于Go程序静态分析的许多库和工具。包括oracle、godoc-analysis、eg和gorename布莱恩W.柯尼汉(Brian W.Kerrlighan)普林斯顿大学计算机科学系教授。他是《C程序设计语言》的作者之一,与C语言的发明人Dennis Ritctlie共同合作了这本书。1969~2000年期间,他是贝尔实验室计算机科学研究中心技术团队的成员,与LJNIX的创造者Kerl Thompsorl以及DenrIis Ritcl”Iie一起工作,同时他也是开发LJNIX的主要贡献者。他是AWK和AMPt一编程语言的作者之一,AWK中的K说的就是Kerrdghan。他还是《程序设计实践》的合著者之一。

本书特色

《程序设计语言》作者Kerninghan教授与谷歌GO开发团队核心成员联合编写,Go语言编程圣经。

目录

出版者的话

译者序

前言

第1章入门

1.1hello,world

1.2命令行参数

1.3找出重复行

1.4GIF动画

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.3new函数

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.2Unicode

3.5.3UTF-8

3.5.4字符串和字节slice

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

3.6常量

3.6.1常量生成器iota

3.6.2无类型常量

第4章复合数据类型

4.1数组

4.2slice

4.2.1append函数

4.2.2slice就地修改

4.3map

4.4结构体

4.4.1结构体字面量

4.4.2结构体比较

4.4.3结构体嵌套和匿名成员

4.5JSON

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.7http.Handler接口

7.8error接口

7.9示例:表达式求值器

7.10类型断言

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

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

7.13类型分支

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

7.15一些建议

第8章goroutine和通道

8.1goroutine

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.8goroutine与线程

9.8.1可增长的栈

9.8.2goroutine调度

9.8.3GOMAXPROCS

9.8.4goroutine没有标识

第10章包和go工具

10.1引言

10.2导入路径

10.3包的声明

10.4导入声明

10.5空导入

10.6包及其命名

10.7go工具

10.7.1工作空间的组织

10.7.2包的下载

10.7.3包的构建

10.7.4包的文档化

10.7.5内部包

10.7.6包的查询

第11章测试

11.1go test工具

11.2Test函数

11.2.1随机测试

11.2.2测试命令

11.2.3白盒测试

11.2.4外部测试包

11.2.5编写有效测试

11.2.6避免脆弱的测试

11.3覆盖率

11.4Benchmark函数

11.5性能剖析

11.6Example函数

第12章反射

12.1为什么使用反射

12.2reflect.Type和reflect.Value

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

12.4示例:编码S表达式

12.5使用reflect.Value来设置值

12.6示例:解码S表达式

12.7访问结构体字段标签

12.8显示类型的方法

12.9注意事项

第13章低级编程

13.1unsafe.Sizeof、Alignof 和Offsetof

13.2unsafe.Pointer

13.3示例:深度相等

13.4使用cgo调用C代码

13.5关于安全的注意事项

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《Go程序设计语言》
Article link:https://www.teccses.org/746717.html