如何快速学习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