给大家带来的一篇关于Go语言相关的电子书资源,介绍了关于Go语言、Go语言入门方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小167.7 MB,乔治 奥尔波编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.7。
内容介绍
如何快速学习Go英语的语法和设计风格的出色读物Go语言入门秘笈零基础Go语言客户的读物根据基本知识和试着突显“钟头”定义由浅入深的实例正确引导您进行普遍的Go每日任务。问答、测试和训练协助读者检验专业知识的学习情况。“留意”、“提醒”和“警示”强调近道和解决方法。各章实例与习题协助读者轻轻松松进行普遍每日任务,根据实践活动提升运用专业技能,推进所教专业知识。
Go语言是Google发布的一种全新升级的程序编写语言,致力于不损害程序运行性能的状况下减少编码的多元性,具备“布署简易、高并发性好、语言设计方案优良、实行性能好”等优点,现阶段中国众多IT企业均已选用Go语言开发设计新项目。《Go语言入门经典》分成24章,解读了应用Go语言撰写高品质程序流程的方式 ,其內容包含了Go语言特点和标准库安装文件,Go与JavaScript的比照,Go命令行工具,Go中的基本要素(例如种类、自变量、涵数、控制结构、表针、插口等)、错误处理、Goroutine和安全通道、Go编码检测、应用Go撰写HTTP手机客户端与网络服务器、解决JSON和文档、布署Go编码等。《Go语言入门经典》合适要想把握Go语言的零基础读者及其对Go语言很感兴趣的程序猿学习培训,还可做为高等学校专家教授Go语言课程内容的教材内容。
目录
-
第 1章 起步 1
-
1.1 Go简介 1
-
1.1.1 Go语言简史 1
-
1.1.2 Go是编译型语言 2
-
1.2 安装Go 2
-
1.2.1 在Windows系统中安装 3
-
1.2.2 在macOS或Linux系统中
-
安装 4
-
1.3 设置环境 4
-
1.4 编写第 一个Go程序——
-
Hello World 5
-
1.4.1 使用go run编译并运行
-
程序 6
-
1.4.2 Go吉祥物 6
-
1.5 小结 6
-
1.6 问与答 7
-
1.7 作业 7
-
1.7.1 小测验 7
-
1.7.2 答案 7
-
1.8 练习 7
-
第 2章 理解类型 8
-
2.1 数据类型是什么 8
-
2.2 区分静态类型和动态类型 8
-
2.3 使用布尔类型 11
-
2.4 理解数值类型 12
-
2.4.1 带符号整数和无符号整数 13
-
2.4.2 浮点数 14
-
2.4.3 字符串 14
-
2.4.4 数组 14
-
2.5 检查变量的类型 15
-
2.6 类型转换 16
-
2.7 小结 17
-
2.8 问与答 17
-
2.9 作业 17
-
2.9.1 小测验 17
-
2.9.2 答案 17
-
2.10 练习 18
-
第3章 理解变量 19
-
3.1 变量是什么 19
-
3.2 快捷变量声明 21
-
3.3 理解变量和零值 21
-
3.4 编写简短变量声明 22
-
3.5 变量声明方式 23
-
3.6 理解变量作用域 24
-
3.7 使用指针 25
-
3.8 声明常量 27
-
3.9 小结 28
-
3.10 问与答 28
-
3.11 作业 29
-
3.11.1 小测验 29
-
3.11.2 答案 29
-
3.12 练习 29
-
第4章 使用函数 30
-
4.1 函数是什么 30
-
4.1.1 函数的结构 30
-
4.1.2 返回单个值 31
-
4.1.3 返回多个值 32
-
4.2 定义不定参数函数 33
-
4.3 使用具名返回值 34
-
4.4 使用递归函数 35
-
4.5 将函数作为值传递 36
-
4.6 小结 38
-
4.7 问与答 38
-
4.8 作业 38
-
4.8.1 小测验 38
-
4.8.2 答案 38
-
4.9 练习 39
-
第5章 控制流程 40
-
5.1 使用if语句 40
-
5.2 使用else语句 42
-
5.3 使用else if语句 43
-
5.4 使用比较运算符 44
-
5.5 使用算术运算符 45
-
5.6 使用逻辑运算符 45
-
5.7 使用switch语句 46
-
5.8 使用for语句进行循环 47
-
5.8.1 包含初始化语句和后续
-
语句的for语句 49
-
5.8.2 包含range子句的for
-
语句 49
-
5.9 使用defer语句 50
-
5.10 小结 52
-
5.11 问与答 52
-
5.12 作业 53
-
5.12.1 小测验 53
-
5.12.2 答案 53
-
5.13 练习 53
-
第6章 数组、切片和映射 54
-
6.1 使用数组 54
-
6.2 使用切片 56
-
6.2.1 在切片中添加元素 56
-
6.2.2 从切片中删除元素 58
-
6.2.3 复制切片中的元素 58
-
6.3 使用映射 59
-
从映射中删除元素 60
-
6.4 小结 61
-
6.5 问与答 61
-
6.6 作业 62
-
6.6.1 小测验 62
-
6.6.2 答案 62
-
6.7 练习 62
-
第7章 使用结构体和指针 63
-
7.1 结构体是什么 63
-
7.2 创建结构体 65
-
7.3 嵌套结构体 68
-
7.4 自定义结构体数据字段的
-
默认值 69
-
7.5 比较结构体 71
-
7.6 理解公有和私有值 72
-
7.7 区分指针引用和值
-
引用 73
-
7.8 小结 75
-
7.9 问与答 75
-
7.10 作业 76
-
7.10.1 小测验 76
-
7.10.2 答案 76
-
7.11 练习 76
-
第8章 创建方法和接口 77
-
8.1 使用方法 77
-
8.2 创建方法集 79
-
8.3 使用方法和指针 80
-
8.4 使用接口 83
-
8.5 小结 86
-
8.6 问与答 86
-
8.7 作业 87
-
8.7.1 小测验 87
-
8.7.2 答案 87
-
8.8 练习 87
-
第9章 使用字符串 88
-
9.1 创建字符串字面量 88
-
9.2 理解rune字面量 89
-
9.3 拼接字符串 90
-
9.3.1 使用缓冲区拼接字符串 92
-
9.3.2 理解字符串是什么 93
-
9.3.3 处理字符串 94
-
9.4 小结 97
-
9.5 问与答 97
-
9.6 作业 97
-
9.6.1 小测验 97
-
9.6.2 答案 97
-
9.7 练习 98
-
第 10章 处理错误 99
-
10.1 错误处理及Go语言的
-
独特之处 99
-
10.2 理解错误类型 101
-
10.3 创建错误 101
-
10.4 设置错误的格式 102
-
10.5 从函数返回错误 103
-
10.6 错误和可用性 104
-
10.7 慎用panic 104
-
10.8 小结 106
-
10.9 问与答 106
-
10.10 作业 106
-
10.10.1 小测验 106
-
10.10.2 答案 106
-
10.11 练习 107
-
第 11章 使用Goroutine 108
-
11.1 理解并发 108
-
11.2 并发和并行 110
-
11.3 通过Web浏览器来
-
理解并发 110
-
11.4 阻塞和非阻塞代码 111
-
11.5 使用Goroutine处理并发
-
操作 112
-
11.6 定义Goroutine 114
-
11.7 小结 114
-
11.8 问与答 114
-
11.9 作业 115
-
11.9.1 小测验 115
-
11.9.2 答案 115
-
11.10 练习 115
-
第 12章 通道简介 116
-
12.1 使用通道 116
-
12.2 使用缓冲通道 119
-
12.3 阻塞和流程控制 120
-
12.4 将通道用作函数参数 123
-
12.5 使用select语句 123
-
12.6 退出通道 126
-
12.7 小结 128
-
12.8 问与答 128
-
12.9 作业 128
-
12.9.1 小测验 129
-
12.9.2 答案 129
-
12.10 练习 129
-
第 13章 使用包实现代码重用 130
-
13.1 导入包 130
-
13.2 理解包的用途 131
-
13.3 使用第三方包 132
-
13.4 安装第三方包 132
-
13.5 管理第三方依赖 133
-
13.6 创建包 135
-
13.7 小结 137
-
13.8 问与答 137
-
13.9 作业 137
-
13.9.1 小测验 137
-
13.9.2 答案 138
-
13.10 练习 138
-
第 14章 Go语言命名约定 139
-
14.1 Go代码格式设置 139
-
14.2 使用gofmt 140
-
14.3 配置文本编辑器 141
-
14.4 命名约定 142
-
14.5 使用golint 143
-
14.6 使用godoc 144
-
14.7 工作流程自动化 147
-
14.8 小结 148
-
14.9 问与答 149
-
14.10 作业 149
-
14.10.1 小测验 149
-
14.10.2 答案 149
-
14.11 练习 149
-
第 15章 测试和性能 150
-
15.1 测试:软件开发的重要
-
方面 150
-
15.1.1 单元测试 151
-
15.1.2 集成测试 151
-
15.1.3 功能测试 151
-
15.1.4 测试驱动开发 151
-
15.2 testing包 151
-
15.3 运行表格驱动测试 154
-
15.4 基准测试 156
-
15.5 提供测试覆盖率 158
-
15.6 小结 159
-
15.7 问与答 159
-
15.8 作业 159
-
15.8.1 小测验 159
-
15.8.2 答案 159
-
15.9 练习 160
-
第 16章 调试 161
-
16.1 日志 161
-
16.2 打印数据 164
-
16.3 使用fmt包 165
-
16.4 使用Delve 168
-
16.5 使用gdb 170
-
16.6 小结 171
-
16.7 问与答 171
-
16.8 作业 171
-
16.8.1 小测验 171
-
16.8.2 答案 172
-
16.9 练习 172
-
第 17章 使用命令行程序 173
-
17.1 操作输入和输出 174
-
17.2 访问命令行参数 174
-
17.3 分析命令行标志 176
-
17.4 指ding标志的类型 177
-
17.5 自定义帮助文本 178
-
17.6 创建子命令 179
-
17.7 POSIX兼容性 182
-
17.8 安装和分享命令行程序 182
-
17.9 小结 184
-
17.10 问与答 184
-
17.11 作业 184
-
17.11.1 小测验 185
-
17.11.2 答案 185
-
17.12 练习 185
-
第 18章 创建HTTP服务器 186
-
18.1 通过Hello World Web服务器
-
宣告您的存在 186
-
18.2 查看请求和响应 187
-
18.2.1 使用curl发出请求 188
-
18.2.2 详谈路由 189
-
18.3 使用处理程序函数 189
-
18.4 处理404错误 190
-
18.5 设置报头 191
-
18.6 响应以不同类型的内容 192
-
18.7 响应不同类型的请求 194
-
18.8 获取GET和POST请求中的
-
数据 195
-
18.9 小结 197
-
18.10 问与答 198
-
18.11 作业 198
-
18.11.1 小测验 198
-
18.11.2 答案 198
-
18.12 练习 199
-
第 19章 创建HTTP客户端 200
-
19.1 理解HTTP 200
-
19.2 发出GET请求 201
-
19.3 发出POST请求 202
-
19.4 进一步控制HTTP请求 204
-
19.5 调试HTTP请求 205
-
19.6 处理超时 207
-
19.7 小结 208
-
19.8 问与答 209
-
19.9 作业 209
-
19.9.1 小测验 209
-
19.9.2 答案 209
-
19.10 练习 210
-
第 20章 处理JSON 211
-
20.1 JSON简介 211
-
20.2 使用JSON API 213
-
20.3 在Go语言中使用JSON 213
-
20.4 解码JSON 217
-
20.5 映射数据类型 219
-
20.6 处理通过HTTP收到的JSON 220
-
20.7 小结 221
-
20.8 问与答 221
-
20.9 作业 222
-
20.9.1 小测验 222
-
20.9.2 答案 222
-
20.10 练习 222
-
第 21章 处理文件 223
-
21.1 文件的重要性 223
-
21.2 使用ioutil包读写文件 224
-
21.2.1 读取文件 224
-
21.2.2 创建文件 225
-
21.3 写入文件 227
-
21.4 列出目录的内容 228
-
21.5 复制文件 229
-
21.6 删除文件 230
-
21.7 使用文件来管理配置 231
-
21.7.1 使用JSON文件 231
-
21.7.2 使用TOML文件 232
-
21.8 小结 234
-
21.9 问与答 234
-
21.10 作业 234
-
21.10.1 小测验 235
-
21.10.2 答案 235
-
21.11 练习 235
-
第 22章 正则表达式简介 236
-
22.1 定义正则表达式 236
-
22.2 熟悉正则表达式语法 238
-
22.3 使用正则表达式验证数据 239
-
22.4 使用正则表达式来变换数据 240
-
22.5 小结 241
-
22.6 问与答 241
-
22.7 作业 241
-
22.7.1 小测验 242
-
22.7.2 答案 242
-
22.8 练习 242
-
第 23章 Go语言时间编程 243
-
23.1 时间元素编程 243
-
23.2 让程序休眠 245
-
23.3 设置超时时间 245
-
23.4 使用ticker 246
-
23.5 以字符串格式表示时间 247
-
23.6 使用结构体Time 248
-
23.7 时间加减 249
-
23.8 比较两个不同的Time结构体 249
-
23.9 小结 250
-
23.10 问与答 250
-
23.11 作业 251
-
23.11.1 小测验 251
-
23.11.2 答案 251
-
23.12 练习 251
-
第 24章 部署Go语言代码 252
-
24.1 理解目标 252
-
24.2 压缩二进制文件的大小 255
-
24.3 使用Docker 256
-
24.4 下载二进制文件 258
-
24.5 使用go get 259
-
24.6 通过包管理器发布代码 260
-
24.7 小结 260
-
24.8 问与答 260
-
24.9 作业 261
-
24.9.1 小测验 261
-
24.9.2 答案 261
-
24.10 练习 261
学习笔记
放弃 Python 转向 Go语言有人给出了 9 大理由
转用一门新语言通常是一项大决策,尤其是当你的团队成员中只有一个使用过它时。今年 Stream 团队的主要编程语言从 Python 转向了 Go。本文解释了其背后的九大原因以及如何做好这一转换。 一、为什么使用 Go 原因 1:性能 Go 极其地快。其性能与 Java 或 C++相似。在我们的使用中,Go 一般比 Python 要快 30 倍。以下是 Go 与 Java 之间的基准比较: 原因 2:语言性能很重要 对很多应用来说,编程语言只是简单充当了其与数据集之间的胶水。语言本身的性能常常无关轻重。 但是 Stream 是一个 API 提供商,服务于世界 500 强以及超过 2 亿的终端用户。数年来我们已经优化了 Cassandra、PostgreSQL、Redis 等等,然而最终抵……
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
本文实例讲述了php实现有序数组打印或排序的方法。分享给大家供大家参考,具体如下: 有序的数组打印或排序对于php来讲非常的简单了这里整理了几个不同语言的做法的实现代码,具体的我们一起来看这篇php中有序的数组打印或排序的例子吧. 最近有个面试题挺火的——把2个有序的数组打印或排序,刚看到这个题的时候也有点蒙,最优的算法肯定要用到有序的特性. 思考了一会发现也不是很难,假如数组是正序排列的,可以同时遍历2个数组,将小的值进行排序,最后会遍历完一个数组,留下一个非空数组,而且剩下的值肯定大于等于已经排好序的最大值. PHP代码: ?php function sort_arr($a,$b) { $temp = array(); while ($a$b) {……
Python和Go语言的区别总结
什么是Python? Python是一种功能强大的高级编程语言,主要用于科学和工程计算。它是一种高效的语言,优雅务实,简单而强大,适合新手和专业人士的编程。 Python支持多种编程范例,并提出了一个大型标准库,包括面向对象,命令式,功能性和程序性。 Go是什么? Go是一种通用编程语言,由Google设计;它借鉴了许多其他许多好主意语言,同时避免导致复杂性和不可靠代码的功能。 Go支持多范式,如程序,功能和并发。它的语法传统上来自C语言,但它已经做了很多修改,以改进简单性和安全性等功能。 Python和Go之间的区别是什么? 1、范例 Python是一种基于面向对象编程的多范式,命令式和函数式编程语……
go语言和python哪个难
Python和Go都是用于编写Web应用程序的强大的高级编程语言,它们之间有什么区别吗?下面本篇文章就来带大家认识一下Python和Go语言,介绍一下Python和Go之间的区别,希望对大家有所帮助。 什么是Python? Python是一种功能强大的高级编程语言,主要用于科学和工程计算。它是一种高效的语言,优雅务实,简单而强大,适合新手和专业人士的编程。 Python支持多种编程范例,并提出了一个大型标准库,包括面向对象,命令式,功能性和程序性。 Go是什么? Go是一种通用编程语言,由Google设计;它借鉴了许多其他许多好主意语言,同时避免导致复杂性和不可靠代码的功能。 Go支持多范式,如程序,功能和并发。……
Go语言对比 C++引用传参
这篇文章主要介绍了Go 到底有没有引用传参(对比 C++ ),需要的朋友可以参考下 C++ 中三种参数传递方式 值传递: 最常见的一种传参方式,函数的形参是实参的拷贝,函数中改变形参不会影响到函数外部的形参。一般是函数内部修改参数而又不希望影响到调用者的时候会采用值传递。 指针传递 形参是指向实参地址的一个指针,顾名思义,在函数中对形参指向的内容操作,实参本身会被修改。 引用传递 在 C++ 中,引用是变量的别名,实际上是同一个东西,在内存中也存在同一个地址。换句话说,不管在哪里对引用操作,都相当直接操作被引用的变量。 下面看 demo: #include iostream//值传递void func1(int a) { ……
以上就是本次介绍的Go语言电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。
上一篇:iOS10快速开发:18天零基础开发一个商业应用
下一篇:Go语言核心编程