
作者:冯柳平[等]编著
页数:137页
出版社:科学出版社
出版日期:2022
ISBN:9787030729859
电子书格式:pdf/epub/txt
内容简介
本书介绍Go语言和区块链开发。全书共分7章:第1章介绍Go语言的特点和Go语言程序结构;第2章介绍Go语言的基本语法和数据类型;第3章介绍Go语言的流程控制,包括条件分支选择和循环控制,以及用于处理异步I/O操作的select语句;第4章介绍切片、映射、接口、goroutine和通道等复杂数据类型;第5章介绍函数和指针;第6章介绍区块链的基础知识;第7章介绍区块链开发实例,给出了用Go语言实现共识算法和区块链的模拟程序。
目录
第1章 Go语言概述 1
1.1 Go语言的发展 2
1.2 Go语言的特点 5
1.3 Go语言的结构 6
1.3.1 一个简单的Go语言程序 6
1.3.2 Go项目结构 8
1.4 内置函数和系统标准库 8
1.4.1 内置函数 8
1.4.2 系统标准库 9
1.4.3 fmt包 9
1.4.4 os包 14
1.4.5 io包 15
1.4.6 math包 17
1.5 Go语言的集成开发环境 19
1.5.1 Go语言安装配置 19
1.5.2 LiteIDE安装配置 21
1.5.3 Go程序的开发 22
1.5.4 LiteIDE断点调试Debug 24
1.5.5 LiteIDE的快捷键 26
第2章 Go语言基本语法 28
2.1 变量和常量 29
2.1.1 标识符 29
2.1.2 变量声明 29
2.1.3 变量的作用域 31
2.1.4 常量声明 34
2.2 数据类型 34
2.2.1 整型 35
2.2.2 浮点型 35
2.2.3 复数型 36
2.2.4 字符串类型 36
2.2.5 布尔类型 38
2.3 运算符与表达式 38
2.3.1 内置运算符 38
2.3.2 运算符优先级 45
第3章 Go语言流程控制 47
3.1 选择结构 48
3.1.1 if条件语句 48
3.1.2 switch 语句 51
3.1.3 select语句 55
3.2 for循环结构 55
3.2.1 for语句的典型形式 55
3.2.2 for语句的简单形式 56
3.2.3 无限循环形式 56
3.2.4 多重循环 57
3.3 跳转控制语句 57
3.3.1 break语句 57
3.3.2 continue语句 59
3.3.3 goto语句 61
第4章 复杂的数据类型 64
4.1 数组 65
4.1.1 数组的声明 65
4.1.2 数组元素的访问 65
4.2 切片 67
4.2.1 切片的声明 67
4.2.2 切片的使用 68
4.3 结构体 70
4.3.1 结构体的声明 70
4.3.2 结构体的使用 71
4.4 映射 72
4.4.1 映射的声明 72
4.4.2 映射的使用 72
4.5 接口 74
4.5.1 接口的声明 74
4.5.2 接口的使用 75
4.6 通道 76
4.6.1 goroutine 76
4.6.2 通道通信 78
第5章 函数与指针 82
5.1 函数的基本概念 83
5.1.1 函数声明 83
5.1.2 函数调用 83
5.1.3 初始化函数 84
5.2 函数的参数传递 85
5.2.1 值传递 85
5.2.2 引用传递 86
5.2.3 参数的作用域 88
5.3 其他函数形式 90
5.3.1 递归函数 90
5.3.2 匿名函数 91
5.3.3 变参函数 93
5.3.4 多返回值 94
5.4 指针 94
5.4.1 指针的概念 94
5.4.2 空指针 96
5.4.3 指向指针的指针 97
5.5 内存管理 98
第6章 Go语言与区块链 100
6.1 区块链的基础知识 101
6.1.1 区块链的发展 101
6.1.2 区块链的分类 102
6.1.3 比特币挖矿过程 103
6.1.4 共识算法 104
6.1.5 智能合约 105
6.2 区块链的数据结构 106
6.2.1 区块链结构 106
6.2.2 区块链标识符 108
6.2.3 区块链的数据结构 108
6.3 哈希函数与Merkle树 109
6.3.1 区块链中的哈希函数 109
6.3.2 哈希函数的计算 109
6.3.3 Merkle树 110
第7章 区块链开发实例 116
7.1 PBFT共识算法 117
7.1.1 PBFT共识算法的基本理论 117
7.1.2 准备工作 119
7.1.3 PBFT共识算法的Go语言实现 120
7.1.4 主函数 122
7.2 PoS共识算法 125
7.2.1 PoS共识算法的基本理论 125
7.2.2 准备工作 126
7.2.3 PoS算法的实现 127
7.2.4 主函数 128
7.3 PoW共识算法 129
7.3.1 PoW共识算法的基本原理 129
7.3.2 准备工作 131
7.3.3 PoW算法的实现 133
7.3.4 主函数的定义 136
参考文献 138
1.1 Go语言的发展 2
1.2 Go语言的特点 5
1.3 Go语言的结构 6
1.3.1 一个简单的Go语言程序 6
1.3.2 Go项目结构 8
1.4 内置函数和系统标准库 8
1.4.1 内置函数 8
1.4.2 系统标准库 9
1.4.3 fmt包 9
1.4.4 os包 14
1.4.5 io包 15
1.4.6 math包 17
1.5 Go语言的集成开发环境 19
1.5.1 Go语言安装配置 19
1.5.2 LiteIDE安装配置 21
1.5.3 Go程序的开发 22
1.5.4 LiteIDE断点调试Debug 24
1.5.5 LiteIDE的快捷键 26
第2章 Go语言基本语法 28
2.1 变量和常量 29
2.1.1 标识符 29
2.1.2 变量声明 29
2.1.3 变量的作用域 31
2.1.4 常量声明 34
2.2 数据类型 34
2.2.1 整型 35
2.2.2 浮点型 35
2.2.3 复数型 36
2.2.4 字符串类型 36
2.2.5 布尔类型 38
2.3 运算符与表达式 38
2.3.1 内置运算符 38
2.3.2 运算符优先级 45
第3章 Go语言流程控制 47
3.1 选择结构 48
3.1.1 if条件语句 48
3.1.2 switch 语句 51
3.1.3 select语句 55
3.2 for循环结构 55
3.2.1 for语句的典型形式 55
3.2.2 for语句的简单形式 56
3.2.3 无限循环形式 56
3.2.4 多重循环 57
3.3 跳转控制语句 57
3.3.1 break语句 57
3.3.2 continue语句 59
3.3.3 goto语句 61
第4章 复杂的数据类型 64
4.1 数组 65
4.1.1 数组的声明 65
4.1.2 数组元素的访问 65
4.2 切片 67
4.2.1 切片的声明 67
4.2.2 切片的使用 68
4.3 结构体 70
4.3.1 结构体的声明 70
4.3.2 结构体的使用 71
4.4 映射 72
4.4.1 映射的声明 72
4.4.2 映射的使用 72
4.5 接口 74
4.5.1 接口的声明 74
4.5.2 接口的使用 75
4.6 通道 76
4.6.1 goroutine 76
4.6.2 通道通信 78
第5章 函数与指针 82
5.1 函数的基本概念 83
5.1.1 函数声明 83
5.1.2 函数调用 83
5.1.3 初始化函数 84
5.2 函数的参数传递 85
5.2.1 值传递 85
5.2.2 引用传递 86
5.2.3 参数的作用域 88
5.3 其他函数形式 90
5.3.1 递归函数 90
5.3.2 匿名函数 91
5.3.3 变参函数 93
5.3.4 多返回值 94
5.4 指针 94
5.4.1 指针的概念 94
5.4.2 空指针 96
5.4.3 指向指针的指针 97
5.5 内存管理 98
第6章 Go语言与区块链 100
6.1 区块链的基础知识 101
6.1.1 区块链的发展 101
6.1.2 区块链的分类 102
6.1.3 比特币挖矿过程 103
6.1.4 共识算法 104
6.1.5 智能合约 105
6.2 区块链的数据结构 106
6.2.1 区块链结构 106
6.2.2 区块链标识符 108
6.2.3 区块链的数据结构 108
6.3 哈希函数与Merkle树 109
6.3.1 区块链中的哈希函数 109
6.3.2 哈希函数的计算 109
6.3.3 Merkle树 110
第7章 区块链开发实例 116
7.1 PBFT共识算法 117
7.1.1 PBFT共识算法的基本理论 117
7.1.2 准备工作 119
7.1.3 PBFT共识算法的Go语言实现 120
7.1.4 主函数 122
7.2 PoS共识算法 125
7.2.1 PoS共识算法的基本理论 125
7.2.2 准备工作 126
7.2.3 PoS算法的实现 127
7.2.4 主函数 128
7.3 PoW共识算法 129
7.3.1 PoW共识算法的基本原理 129
7.3.2 准备工作 131
7.3.3 PoW算法的实现 133
7.3.4 主函数的定义 136
参考文献 138















