目录


第1章认识Go语言

1.1Go语言简史

1.2Go语言小程序

1.3Go语言的注释

1.4Go语言格式化

1.4.1格式化控制字符

1.4.2格式化输出

1.4.3格式化输入

1.5Go语言安装

1.6Go语言编辑工具

上机训练

习题

第2章Go语言设计元素

2.1标识符

2.1.1关键字

2.1.2预定义标识符

2.1.3分隔符

2.2数据类型

2.2.1基本数据类型

2.2.2复合数据类型

2.2.3自定义数据类型

2.3常量

2.3.1字面量

2.3.2常量的定义

2.3.3常量的赋值

2.3.4枚举

2.4变量

2.4.1变量的声明

2.4.2变量初始化

2.4.3变量赋值

2.4.4变量的类型转换

2.5操作符

2.6表达式

2.6.1逻辑表达式

2.6.2算术表达式

2.7类型及值的属性

2.7.1类型相同

2.7.2别名及类型定义

2.7.3可赋值问题

2.7.4无类型常量的表示

上机训练

习题




第3章程序流程控制

3.1代码块与作用域

3.1.1代码块

3.1.2作用域

3.1.3变量的可见性

3.2if语句

3.2.1基本语法

3.2.2省略else

3.2.3带子句的if

3.2.4if语句的嵌套

3.2.5if…else if语句

3.3switch语句

3.3.1表达式switch

3.3.2类型switch

3.3.3switch的嵌套

3.3.4break语句

3.3.5fallthrough语句

3.4select语句

3.5for语句

3.5.1基本语法

3.5.2for子句

3.5.3range子句

3.5.4break语句

3.5.5continue语句

3.5.6goto语句

上机训练

习题

第4章数组、切片与映射

4.1值和引用

4.1.1值传递

4.1.2引用传递

4.2数组

4.2.1数组的声明

4.2.2数组的初始化

4.2.3数组的赋值

4.2.4数组的类型

4.2.5数组的传递

4.2.6多维数组

4.3切片

4.3.1切片的定义

4.3.2切片的检索及赋值

4.3.3切片的操作

4.3.4切片的遍历

4.3.5切片的扩容

4.3.6切片的复制

4.3.7切片的插入与删除

4.3.8切片的排序与检索

4.4映射

4.4.1映射的概念

4.4.2映射的创建

4.4.3映射的填充及修改

4.4.4映射的查找与遍历

4.4.5映射的删除及键的修改

4.4.6映射的反转

上机训练

习题

第5章函数与错误处理

5.1函数的声明

5.1.1内部函数的声明

5.1.2匿名函数的声明

5.1.3外部函数的声明

5.1.4函数类型的声明

5.2函数的参数

5.2.1参数列表的格式

5.2.2可变参数

5.2.3值传递和引用传递

5.2.4空接口作为参数

5.3函数的返回值

5.3.1返回值列表的格式

5.3.2函数作为返回值

5.3.3多返回值处理

5.3.4return语句

5.4匿名函数与闭包

5.5init函数和main函数

5.5.1init函数

5.5.2main函数

5.6错误与恢复机制

5.6.1错误信息提示

5.6.2defer语句

5.6.3panic函数

5.6.4recover函数

5.7递归函数

5.8内置函数简介

上机训练

习题

第6章字符串与指针

6.1字符表示

6.2字符串变量的声明

6.3字符串的输入/输出

6.3.1从键盘输入字符串

6.3.2从字符串中扫描文本

6.3.3往标准I/O设备上输出字符串

6.3.4格式化串联字符串

6.4字符串的操作

6.4.1字符串搜索

6.4.2字符串的遍历

6.4.3字符串的截取

6.4.4字符串的连接

6.4.5字符串的修改

6.4.6字符串的删除

6.4.7字符串的插入

6.4.8字符串的比较

6.5strings包使用

6.5.1字符串包含

6.5.2字符串索引

6.5.3字符替换

6.5.4字符统计

6.5.5大小写转换

6.5.6字符串修剪

6.5.7字符串分割

6.5.8字符串连接

6.6strconv包使用

6.7UTF8包

6.8指针

6.8.1指针的概念

6.8.2指针变量声明

6.8.3指针的初始化及赋值

6.8.4指针应用

6.9多级指针

上机训练

习题

第7章结构体与方法

7.1结构体的定义

7.1.1基本语法

7.1.2使用new创建结构体

7.1.3结构体的赋值

7.1.4结构体的别名与转换

7.2结构体操作

7.2.1访问结构体成员

7.2.2结构体参数传递

7.2.3结构体复制

7.2.4结构体字段加标签

7.3结构体嵌套

7.3.1匿名字段结构体

7.3.2内嵌结构体

7.3.3字段及方法隐藏

7.3.4递归结构体

7.4匿名结构体

7.4.1匿名结构体的声明

7.4.2匿名结构体的应用

7.5复合数据类型结构体

7.5.1数组作为结构体的字段

7.5.2切片作为结构体的字段

7.5.3映射作为结构体的字段

7.5.4接口作为结构体的字段

7.5.5函数作为结构体的字段

7.6结构体的方法

7.6.1方法的声明

7.6.2为类型添加方法

7.6.3内嵌结构体的方法

7.6.4方法重写和多重继承

上机训练

习题

第8章接口与反射

8.1接口的定义

8.1.1接口声明

8.1.2接口的嵌套与组合

8.2接口的实现

8.2.1以值类型接收者实现方法

8.2.2以指针类型接收者实现方法

8.2.3判断类型是否实现接口

8.3接口赋值

8.3.1类型给接口赋值

8.3.2接口给接口赋值

8.4接口查询

8.4.1类型断言

8.4.2类型开关

8.4.3类型反射

8.5接口多态性

8.5.1多态的概念

8.5.2多态的实现

8.6空接口interface{}

8.7error接口

8.8反射

8.8.1反射类型

8.8.2反射值

8.8.3反射结构体

8.8.4设置值

8.8.5反射方法

上机训练

习题

第9章输入输出与文件处理

9.1输入输出基础

9.2io包的输入输出函数

9.2.1变量定义

9.2.2类型定义

9.2.3部分函数及方法介绍

9.3os包的输入输出函数

9.3.1常量与变量定义

9.3.2类型定义

9.3.3目录操作相关函数

9.3.4文件操作相关函数

9.4bufio包的输入输出函数

9.4.1包中的常量变量及类型定义

9.4.2常用输入输出函数及方法介绍

9.5io/ioutil包的输入输出函数

上机训练

习题

第10章并发编程基础

10.1基本概念

10.1.1同步与异步通信

10.1.2并行与并发

10.1.3进程线程与协程

10.2Go语言的并发编程元素

10.2.1goroutine

10.2.2channel

10.2.3select…case

10.3锁与同步

10.3.1基本概念

10.3.2sync.Mutex

10.3.3sync.RWMutx

10.3.4sync.Cond

10.3.5sync.WaitGroup

上机训练

习题

附录AASCII表

附录B习题参考答案

参考文献