Go程序设计语言中文版pdf完整版|百度网盘下载

编者的话:Go Programming Language中文版pdf

本书由《C 编程语言》的作者 Kernighan 和 Google 围棋团队负责人 Alan Donovan 合着。感兴趣的朋友请下载开始阅读

简介

本书由 The C Programming Language 一书的作者 Kernighan 和 Google Go 团队负责人 Alan Donovan 合着,是一本学习 Go 编程的指南。本书共13章,主要内容包括:Go基础知识、基本结构、

基本数据类型、复合数据类型、函数、方法、接口、goroutines、channels、共享变量的并发、包、go工具、测试、反射等

本书适合作为计算机相关专业的教材,Go语言爱好者也可以阅读

相关内容部分预览

目录

Go 编程语言
出版商的话
译者前言
前言
第 1 章 入门 1
1.1 你好,世界 1
1.2 命令行参数 3
1.3 查找重复行 6
1.4 动画 GIF 10
1.5 获取一个 URL 12
1.6 同时获取多个 URL 13
1.7 一个 Web 服务器 14
1.8 其他内容 17
第 17 节2 程序结构 20
2.1 名称 20
2.2 声明 21
2.3 变量 22
2.3.1 短变量声明 22
2.3.2 指针 23
2.3.3 新函数 25 < br>2.3.4 变量生命周期 26
2.4 赋值 27
2.4.1 多重赋值 27
2.4.2 可赋值性 28
2.5 类型声明 29
2.6 包和文件 30
2.6 .1 导入 31
2.6.2 包初始化 33
2.7 作用域 34
第 3 章 基本数据 38
3.1 整数 38
3.2 浮点 42
3.3 复数 45
3.4布尔 47
3.5 字符串 47
3.5.1 字符串字面量 49
3.5.2 Unicode 49
3.5.3 UTF-8 50
3.5 。 4 字符串和字节切片 53
3.5.5 将字符串转换为数字 56
3.6 常量 56
3.6.1 常量生成器 iota 57
3.6.2 无类型常量 59
第 4 章复合数据类型 61
4.1 数组 61
4.2 切片 63
4.2.1 附加函数 66
4.2.2 就地切片修改 69
4.3 映射 71
4.4 结构 76
4.4.1 结构字面量 78
4.4.2 结构比较 80
4.4.3 结构嵌套和匿名成员 80
4.5 JSON 82
4.6 文本和 HTML 模板 87
第 5 章函数 92 < br>5.1 函数声明 92
5.2 递归 93
5.3 多个返回值 96
5.4 错误 98
5.4.1 错误处理策略 99
5.4.2 文件结束标志 101 < br>5.5 函数变量 102
5.6 匿名函数 104
5.7 可变长度函数 110
5.8 延迟函数调用 111
5.9 停机时间 115
5.10 恢复 118
第 6 章方法 120
6.1 方法声明 120
6.2 指针接收器方法 122
6.3通过结构嵌入形成类型 124
6.4 方法变量和表达式 127
6.5 示例:位向量 128
6.6 封装 130
第 7 章 接口 133
7.1 接口是一种约定 133
7.2接口类型 135
7.3 实现接口 136
7.4 使用flag.Value解析参数 139
7.5 接口值 141
7.6 使用sort.Interface进行排序 144
7.7 http.Handler接口 148 < br>7.8 错误接口 152
7.9 示例:表达式评估器 154
7.10 类型断言 160
7.11 使用类型断言来识别错误 161
7.12 通过接口类型断言查询功能 162
7.13 类型分支164
7.14 示例:基于标记的 XML 解析 166
7.15 一些建议 168
第 8 章 Goroutine 和通道 170
8.1 goroutines 170
8.2 示例:并发时钟服务器 171
8.3 示例: 并发 Echo 服务器 174
8.4 通道 176
8.4.1 无缓冲通道 177
8.4.2 管道 178
8.4.3 单向通道类型es 180
8.4.4 缓冲通道 181
8.5 并行循环 183
8.6 示例:并发 Web 爬虫 187
8.7 使用 Select 进行多路复用 190
8.8 示例:并发目录遍历 192
8.9取消 195
8.10 示例:聊天服务器 198
第 9 章使用共享变量进行并发 201
9.1 竞赛 20 1
9.2 互斥锁:sync.Mutex 205
9.3 读写互斥锁:同步。 RWMutex 208
9.4 内存同步 208
9.5 延迟初始化:sync.Once 210
9.6 竞争状态检测器 212
9.7 示例:并发非阻塞缓存 212
9.8 Goroutines 和线程 218
9.8.1 Growable Stacks 219
9.8.2 Goroutine 调度 219
9.8.3 GOMAXPROCS 219
9.8.4 goroutine 无法识别 220
第 10 章包和 go 工具 221
10.1 简介221
10.2 导入路径 221
10.3 包声明 222
10.4 导入声明 223
10.5 空导入 223
10.6 包及其命名 225
10.7 Go Tools 226
10.7. 1 瓦orkspace 组织 227
10.7.2 包下载 228
10.7.3 构建包 229
10.7.4 包文档 231
10.7.5 内部包 232
10.7.6 查询包 233 < br>第 11 章 测试 235
11.1 go 测试工具 235
11.2 测试函数 236
11.2.1 随机测试 239
11.2.2 测试命令 240
11.2.3 白盒测试 242 < br>11.2.4 外部测试包 245
11.2. 5 编写有效的测试 246
11.2.6 避免脆弱的测试 247
11.3 覆盖 248
11.4 基准函数 250
11.5 分析 252
11.6 示例函数 254
第 12 章 反射 256
12.1 为什么使用反射 256
12.2 reflect.Type 和 reflect.Value 257
12.3 显示:递归值显示 259
12.4 示例:编码 S-Expression 263
12.5 使用 reflect.Value 设置值 266
12.6 示例:解码 S 表达式 268
12.7 访问结构字段标签 271
12.8 显示类型的方法 273
12.9 注意事项 274
第 13 章低级编程 276
13.1 unsafe.Sizeof、Alignof 和 Offsetof 276
13.2 unsafe.Pointer 278
13.3 示例:深度等于 280
13.4 使用 cgo 282 调用 C 代码
13.5 安全注意事项 286

前言/前言

Go 编程语言“Go 是一种开源编程语言,旨在使人们能够轻松构建简单、可靠和高效的软件。” (来自 golang.org)2007 年 9 月 Go 形成一个想法,

它于 2009 年 11 月发布,其发明者是 Robert Griesemer、Rob Pike 和 Ken Thompson,他们都在 Google 工作。该语言及其附带的工具集使编译和执行既富有表现力又高效,并使程序员可以轻松编写可靠、健壮的程序。
Go 和 C 表面上看起来很相似,并且与 C 一样,它是专业程序员使用的一种工具,可以事半功倍。但 Go 不仅仅是 C 的升级版,它基于许多其他语言,取其精华,去其糟粕。

它实现并发功能的工具是新的和高效的,数据抽象和面向对象的方法非常灵活。它还实现了自动内存管理或垃圾收集。
Go 特别适用于构建基础设施软件(如 Web 服务器),以及程序员使用的工具和系统。但它确实是一种通用语言,在图像处理、移动应用和机器学习等领域都可以找到它。

由于它在表达性和安全性之间的权衡,它在许多情况下被用作无类型脚本语言的替代品:由于意外的类型错误,Go 程序的运行速度通常比动态语言程序快得多,崩溃的次数要少得多。
Go 是一个开源项目,因此其编译器、库和工具的源代码可供所有人免费使用。来自世界各地的社区都在积极地为这个项目贡献代码。 Go的运行环境包括类UNIX系统——Linux、FreeBSD、

OpenBSD 和 Mac OS X,以及 Plan 9 和 Microsoft Windows。只要程序是在其中一个环境下编写的,基本上不用修改就可以在另一个环境下运行。

阅读剩余
THE END