当前位置: 首页 > 新闻 > 信息荟萃
编号:5767
Go程序设计语言中文版.pdf
http://www.100md.com 2020年11月19日
第1页
第10页
第17页
第21页
第34页
第155页

    参见附件(102071KB,302页)。

     Go程序设计语言中文版

    本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队主管Alan Donovan联袂撰写,是学习Go语言程序设计的指南,小编今天为大家准备了Go程序设计语言中文版,感兴趣的小伙伴们就快来开始阅读吧

    内容简介

    本书由《C程序设计语言》的作者Kernighan和谷歌公司Go团队主管Alan Donovan联袂撰写,是学习Go语言程序设计的指南。本书共13章,主要内容包括:Go的基础知识、基本结构、基本数据类型、复合数据类型、函数、方法、接口、goroutine、通道、共享变量的并发性、包、go工具、测试、反射等。

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

    相关内容部分预览

    目录

    The Go Programming Language

    出版者的话

    译者序

    前言

    第1章 入门 1

    1.1 hello,world 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

    第2章 程序结构 20

    2.1 名称 20

    2.2 声明 21

    2.3 变量 22

    2.3.1 短变量声明 22

    2.3.2 指针 23

    2.3.3 new函数 25

    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 字符串和字节slice 53

    3.5.5 字符串和数字的相互转换 56

    3.6 常量 56

    3.6.1 常量生成器iota 57

    3.6.2 无类型常量 59

    第4章 复合数据类型 61

    4.1 数组 61

    4.2 slice 63

    4.2.1 append函数 66

    4.2.2 slice就地修改 69

    4.3 map 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

    5.1 函数声明 92

    5.2 递归 93

    5.3 多返回值 96

    5.4 错误 98

    5.4.1 错误处理策略 99

    5.4.2 文件结束标识 101

    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

    7.8 error接口 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 goroutine 170

    8.2 示例:并发时钟服务器 171

    8.3 示例:并发回声服务器 174

    8.4 通道 176

    8.4.1 无缓冲通道 177

    8.4.2 管道 178

    8.4.3 单向通道类型 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 竞态 201

    9.2 互斥锁:sync.Mutex 205

    9.3 读写互斥锁:sync.RWMutex 208

    9.4 内存同步 208

    9.5 延迟初始化:sync.Once 210

    9.6 竞态检测器 212

    9.7 示例:并发非阻塞缓存 212

    9.8 goroutine与线程 218

    9.8.1 可增长的栈 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工具 226

    10.7.1 工作空间的组织 227

    10.7.2 包的 228

    10.7.3 包的构建 229

    10.7.4 包的文档化 231

    10.7.5 内部包 232

    10.7.6 包的查询 233

    第11章 测试 235

    11.1 go test工具 235

    11.2 Test函数 236

    11.2.1 随机测试 239

    11.2.2 测试命令 240

    11.2.3 白盒测试 242

    11.2.4 外部测试包 245

    11.2.5 编写有效测试 246

    11.2.6 避免脆弱的测试 247

    11.3 覆盖率 248

    11.4 Benchmark函数 250

    11.5 性能剖析 252

    11.6 Example函数 254

    第12章 反射 256

    12.1 为什么使用反射 256

    12.2 reflect.Type和reflect.Value 257

    12.3 Display:一个递归的值显示器 259

    12.4 示例:编码S表达式 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调用C代码 282

    13.5 关于安全的注意事项 286

    前言/序言

    The Go Programming Language“Go是一种开源的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效的软件。”(来自Go官网golang.org)Go在2007年9月形成构想,并于2009年11月发布,其发明人是Robert Griesemer、Rob Pike和Ken Thompson,这几位都任职于Google。该语言及其配套工具集使得编译和执行既富有表达力又高效,而且使得程序员能够轻松写出可靠、健壮的程序。

    Go和C从表面上看起来相似,而且和C一样,它也是专业程序员使用的一种工具,兼有事半功倍之效。但是Go远不止是C的一种升级版本。基于多种其他语言,它取其精华,去其糟粕。

    它实现并发功能的设施是全新的、高效的,实现数据抽象和面向对象的途径是极其灵活的。它还实现了自动化的内存管理,或称为垃圾回收。

    Go特别适用于构建基础设施类软件(如网络服务器),以及程序员使用的工具和系统等。但它的的确确是一种通用语言,而且在诸多领域(如图像处理、移动应用和机器学习)中都能发现它的身影。

    它在很多场合下用于替换无类型的脚本语言,这是由于它兼顾了表达力和安全性:Go程序通常比动态语言程序运行速度要快,由于意料之外的类型错误而导致崩溃的情形更是少得多。

    Go是个开源项目,所以其编译器、库和工具的源代码是人人皆可取得的。来自全世界的社区都在积极地向这个项目贡献代码。Go的运行环境包括类UNIX系统——Linux、FreeBSD、OpenBSD和Mac OS X,还有Plan 9和Microsoft Windows。只要在其中一个环境中写了一个程序,那么基本上不加修改它就可以运行在其他环境中。

    Go程序设计语言中文版截图

您现在查看是摘要介绍页, 详见PDF附件(102071KB,302页)