
热门8周快速入门Go语言(第1版)
- 书籍作者:李文周
- 出版社 :老男孩内部出版
- 出版时间:2019年6月4日
- 书籍开本:16开
- 书籍包装:平装
- 是否套装:否
- 书籍页数:173页
- 书号ISBN:----
学生专享:¥0.000折¥0.00
平安彩票老男孩 Linux云计算运维 就业班正在火热招生,坐席有限,
内容简介:
本书主要针对Go语言初学者快速入门Go语言,全书分为14章三大部分。 第一部分:其中第1章介绍了Go语言的发展历史,并详细介绍了搭建Go语言开发环境的步骤。 第2章到第10章介绍了Go语言的基础语法,第11章介绍了Go语言赖以成名的并发编程的内容。 第二部分:第12章介绍了网络编程部分的内容,自己动手实现一个HTTP Server和HTTP Client。第13章介绍了Go语言中如何进行单元测试。 第三部分:第14章重点介绍了Go语言常用的标准库如fmt、time、flag、文件操作等标准库的用法。
作者简介:
平安彩票 李文周,老男孩教育Go学科负责人 多年一线互联网开发经验,前搜狗高级开发工程师。擅长领域:Go、C、Python、JavaScript、小程序等。授课经验丰富,风趣幽默,可能是老男孩教育最严谨的老师。
书籍目录:
前言 1
目录 2
1.1 Go语言简介 14
平安彩票1.1.1 Go语言的发展历史 14
平安彩票1.1.2 Go语言的特点 14
1.1.3 Go语言的应用 14
平安彩票1.2 安装Go语言开发工具包 15
平安彩票1.2.1 下载 15
平安彩票1.2.2 安装 15
1.3 配置GOPATH 19
1.4 Go语言项目结构 20
1.5 第一个Go语言程序 21
1.5.1 Go语言开发编辑器 21
平安彩票1.5.2 安装VSCode 21
1.5.3 Hello world 23
1.6 本章小结 24
1.7 练习题 25
第2章 Go语言基础语法 26
平安彩票2.1 Go语言语法规则 26
平安彩票2.1.1 Go语言代码结构 26
平安彩票2.1.2 Go语言语法特点 26
2.2 标识符和关键字 27
平安彩票2.2.1 标识符 27
2.2.2 关键字 27
2.3 变量 27
2.3.1 变量的来历 27
2.3.2 变量声明 27
2.3.3 变量的初始化 28
2.4 常量 29
2.4.1 常量声明 29
平安彩票2.4.2 iota 30
2.5 本章小结 31
第3章 基本数据类型与运算符 32
3.1 基本数据类型 32
3.1.1 整型 32
3.1.2 浮点型 33
3.1.3 复数 33
平安彩票3.1.4 布尔值 33
平安彩票3.1.5 字符串 34
3.1.6 byte和rune类型 35
3.2 运算符 36
3.2.1 算数运算符 36
3.2.2 关系运算符 37
平安彩票3.2.3 逻辑运算符 37
平安彩票3.2.4 位运算符 38
3.2.5 赋值运算符 38
平安彩票3.3 本章小结 39
3.4 习题 39
平安彩票第4章 流程控制 40
4.1 if条件判断 40
平安彩票4.1.1 if else基本结构 40
平安彩票4.1.2 if判断特殊写法 40
4.2 for循环 41
平安彩票4.2.1 for循环基本格式 41
4.2.2 无限循环 42
4.2.3 for range循环 42
平安彩票4.2.4 break跳出循环 42
4.2.5 continue继续下次循环 43
4.3 switch 43
4.4 goto label 45
4.5 break label 46
4.6 continue label 46
4.7 本章小结 46
4.8 习题 47
第5章 复合数据类型 48
平安彩票5.1 Array 48
5.1.1 Array的定义 48
5.1.2 数组的初始化 48
5.1.3 访问数组的元素 49
平安彩票5.1.4 数组的遍历 49
5.1.5 多维数组 50
5.1.6 数组是值类型 51
平安彩票5.2 Slice 51
平安彩票5.2.1 切片的定义 51
平安彩票5.2.2 基于数组得到切片 52
平安彩票5.2.3 make函数构造切片 52
5.2.4 切片的本质 53
平安彩票5.2.5 切片不能直接比较 54
平安彩票5.2.6 切片的拷贝赋值 54
平安彩票5.2.7 切片的遍历 54
平安彩票5.2.8 使用append给切片追加元素 54
平安彩票5.2.9 使用copy复制切片 56
平安彩票5.2.10 删除切片的元素 56
5.3 Map 57
5.3.1 Map定义 57
平安彩票5.3.2 map基本使用 57
5.3.3 判断键是否存在 57
5.3.4 map的遍历 58
5.3.5 使用delete函数删除键值对 58
平安彩票5.4 本章小结 60
5.5 习题 60
第6章 函数 62
6.1 函数 62
6.1.1 函数定义 62
6.1.2 函数调用 62
6.1.3 函数参数 63
平安彩票6.1.4 函数返回值 64
平安彩票6.1.5 defer语句 64
平安彩票6.2 函数进阶 65
平安彩票6.2.1 变量作用域 65
6.2.2 函数作为变量 66
6.2.3 匿名函数 67
6.3 闭包 67
平安彩票6.3.1 闭包的定义 67
6.3.2 闭包的使用 67
6.4 常用内置函数 68
平安彩票6.4.1 panic和recover 68
6.5 本章小结 70
6.6 习题 70
第7章 指针和包 71
7.1 指针 71
7.1.1 内存地址和指针类型 71
7.1.2 指针取值 71
7.2 new和make 72
7.2.1 new 73
7.2.2 make 73
7.3 包 74
7.3.1 包的定义 74
7.3.2 标识符的可见性 74
平安彩票7.3.3 包的导入 75
平安彩票7.3.4 自定义包名 75
7.3.5 init初始化函数 75
7.4 本章小结 76
7.5 习题 77
第8章 结构体 78
8.1 结构体 78
平安彩票8.1.1 结构体定义 78
8.1.2 结构体实例化 79
8.1.3 匿名结构体 79
8.1.4 结构体指针 79
8.1.5 结构体初始化 80
8.1.6 构造函数 81
8.2 方法和接收者 81
8.2.1 方法 81
8.2.2 接收者 82
8.2.3 任意类型添加方法 83
8.3 结构体嵌套 84
8.3.1 结构体匿名字段 84
8.3.2 嵌套结构体 84
8.3.3 结构体继承 86
8.4 结构体与JSON 87
8.4.1 结构体字段的可见性 87
8.4.2 结构体与JSON 87
平安彩票8.4.3 结构体标签 88
8.5 本章小结 89
8.6 习题 89
第9章 接口 90
平安彩票9.1 接口类型 90
9.1.1 为什么要有接口 90
平安彩票9.1.2 接口的定义 91
平安彩票9.1.3 接口的实现 91
平安彩票9.1.4 值接收者和指针接收者的区别 92
9.1.5 类型与接口的关系 93
9.1.6 接口的嵌套 95
9.2 空接口 95
9.2.1 空接口的定义 95
平安彩票9.2.2 空接口的应用 96
平安彩票9.2.3 类型断言 97
平安彩票9.3 本章小结 97
9.4 习题 98
第10章 反射 99
平安彩票10.1 反射介绍 99
10.1.1 为什么要使用反射 99
10.2 reflect 99
10.2.1 reflect.Type 100
平安彩票10.2.2 Type和Kind 100
10.2.3 reflect.ValueOf 102
平安彩票10.2.4 结构体反射 103
平安彩票10.3 反射是把双刃剑 105
10.4 本章小结 105
10.5 习题 106
平安彩票第11章 并发 107
11.1 什么是并发 107
11.1.1 并发与并行的区别 107
平安彩票11.1.2 Go语言中的并发 107
11.2 goroutine 107
平安彩票11.2.1 使用goroutine 107
平安彩票11.2.2 sync.WaitGroup 108
11.2.3 启动多个goroutine 109
11.3 goroutine与OS线程 109
平安彩票11.3.1 goroutine使用可变的栈 109
11.3.2 goroutine由go的运行时调度 110
11.3.3 GOMAXPROCS 110
11.4 channel 111
平安彩票11.4.1 channel介绍 111
11.4.2 声明channel 111
11.4.3 初始化channel 111
11.4.4 channel操作 112
平安彩票11.4.5 无缓冲通道 112
平安彩票11.4.6 有缓冲通道 113
11.4.7 循环接收值 113
平安彩票11.4.8 单向通道 114
平安彩票11.4.9 select多路复用 115
平安彩票11.5 并发安全和锁 116
11.5.1 互斥锁 116
11.5.2 读写互斥锁 117
11.5.3 sync.Once 118
11.5.4 Sync.Map 119
平安彩票11.6 本章小结 121
11.7 习题 121
平安彩票第12章 网络编程 122
12.1 互联网协议 122
12.1.1 互联网分层模型 122
12.1.2 物理层 123
12.1.3 数据链路层 123
平安彩票12.1.4 网络层 123
12.1.5 传输层 124
平安彩票12.1.6 应用层 124
平安彩票12.2 socket编程 125
12.2.1 socket图解 125
12.3 Go语言实现TCP通信 126
12.3.1 TCP协议 126
12.3.2 TCP服务端 126
12.3.3 TCP客户端 127
平安彩票12.4 Go语言实现UDP通信 128
平安彩票12.4.1 UDP协议 128
平安彩票12.4.2 UDP服务端 128
12.4.3 UDP客户端 129
12.5 Go语言实现HTTP通信 130
12.5.1 HTTP协议 130
平安彩票12.5.2 HTTP客户端 130
平安彩票12.5.3 HTTP服务端 131
12.6 本章小结 131
12.7 习题 132
13 测试 133
13.1 go test 133
13.2 测试函数 133
13.2.1 测试函数格式 133
13.2.2 测试示例 134
平安彩票13.2.3 测试组 137
13.2.4 子测试 138
平安彩票13.2.5 测试覆盖率 140
平安彩票13.3 基准测试 141
13.3.1 基准测试函数格式 141
13.3.2 基准测试示例 142
13.3.3 性能比较函数 143
13.3.4 重置时间 145
平安彩票13.3.5 并行测试 145
平安彩票13.4 Setup与TearDown 146
13.4.1 TestMain 146
平安彩票13.4.2 子测试的Setup与Teardown 146
平安彩票13.5 示例函数 148
13.5.1 示例函数格式 148
13.5.2 示例函数示例 148
13.6 本章小结 149
13.7 习题 149
14 常用标准库 150
平安彩票14.1 fmt 150
14.1.1 输出内容 150
14.1.2 格式化占位符 151
14.1.3 获取输入 155
平安彩票14.2 time 157
14.2.1 时间类型 157
平安彩票14.2.2 时间戳 158
14.2.3 时间间隔 158
14.2.4 时间操作 159
平安彩票14.2.5 定时器 159
14.2.6 时间格式化 159
平安彩票14.3 strconv 160
14.3.1 string与int类型转换 160
14.3.2 Parse系列函数 160
平安彩票14.3.3 Format系列函数 161
14.4 flag 162
平安彩票14.4.1 os.Args 162
14.4.2 flag参数类型 163
14.4.3 定义flag参数 163
平安彩票14.4.4 解析flag参数 163
平安彩票14.4.5 flag包其他函数 164
14.4.6 完整示例 164
14.5 log 165
14.5.1 使用logger 165
平安彩票14.5.2 配置logger 166
14.5.3 配置日志前缀 166
平安彩票14.5.4 配置日志输出位置 167
平安彩票14.5.5 创建logger 167
平安彩票14.6 文件操作 168
14.6.1 打开和关闭文件 168
14.6.2 读取文件 168
平安彩票14.6.3 bufio 170
平安彩票14.6.4 ioutil 170
14.6.5 打开文件 171
14.6.6 Write和WriteString 171
平安彩票14.6.7 bufio.NewWriter 172
14.6.8 ioutil.WriteFile 172
14.7 本章小结 172
平安彩票14.8 习题 172
是时候去做成一件事了 174
书籍前言:
我与Go语言
我接触Go语言是在2016年的时候,那时候我还在搜狗上班,当时我在工作中还是写Python和JavaScript为主。一个偶然的机会接触到Go语言,它作为一门静态编译型的语言,编译之后几乎无依赖的特点,深深地吸引了我,当时一下子就觉着这才是我想要的语言。
后来就开始慢慢学习Go语言了,并且尝试着去编写一些业务代码。当时网上还没有很多关于Go语言的学习资料,我记得我是在github上找到了一些网友自发翻译的Go语言圣经,我拿着PDF去学院路的一家打印店花了20多块钱打印了出来,从那以后上下班的地铁上都是这本书陪着我。
平安彩票 后面我又在网上看了无闻的教学视频,我记得有两个系列一个是Go语言基础,还有名库讲解,我也学到了很多。感谢无闻大大。
现在Go语言及其生态的发展已经越来越完善,越来越多的公司也选择Go语言作为主开发语言,Go语言之所以能发展这么快,肯定离不开无数热心的Gopher为Go社区做的贡献。工作之余我也开始尝试写一些Go语言的博客,录制一些Go语言的视频教程,我也想给Go社区做一些自己力所能及的贡献。
本书是我将之前发布在博客上的文章重新整理而成,希望能帮助到更多的Go语言初学者。但由于水平有限、并且时间仓促,书中难免有错误之处,如能得到您的宝贵建议,将感激不尽。
本书示例代码及习题答案请加QQ群:745470832索取。