Go语言设计与实现

副标题:无

作   者:左书祺(@Draven)

分类号:

ISBN:9787115576613

微信扫一扫,移动浏览光盘

简介

目录

前言 iii
第 1章 调试源代码 1
1.1 Go语言源代码 1
1.2 编译源代码 2
1.3 中间代码 3
1.4 小结 4
第 2章 编译原理 5
2.1 编译过程 5
2.1.1 预备知识 5
2.1.2 编译四阶段 7
2.1.3 编译器入口 10
2.1.4 小结 11
2.1.5 延伸阅读 12
2.2 词法分析和语法分析 12
2.2.1 词法分析 12
2.2.2 语法分析 17
2.2.3 小结 26
2.2.4 延伸阅读 26
2.3 类型检查 26
2.3.1 强弱类型 26
2.3.2 静态类型与动态类型 27
2.3.3 执行过程 28
2.3.4 小结 34
2.4 中间代码生成 34
2.4.1 概述 34
2.4.2 配置初始化 35
2.4.3 遍历和替换 37
2.4.4 SSA生成 40
2.4.5 小结 44
2.5 机器码生成 44
2.5.1 指令集架构 44
2.5.2 机器码生成 45
2.5.3 小结 49
2.5.4 延伸阅读 50
第3章 数据结构 51
3.1 数组 51
3.1.1 概述 51
3.1.2 初始化 52
3.1.3 访问和赋值 55
3.1.4 小结 57
3.1.5 延伸阅读 58
3.2 切片 58
3.2.1 数据结构 58
3.2.2 初始化 59
3.2.3 访问元素 63
3.2.4 追加和扩容 64
3.2.5 复制切片 67
3.2.6 小结 68
3.2.7 延伸阅读 68
3.3 哈希表 68
3.3.1 设计原理 69
3.3.2 数据结构 72
3.3.3 初始化 74
3.3.4 读写操作 77
3.3.5 小结 88
3.3.6 延伸阅读 88
3.4 字符串 88
3.4.1 数据结构 89
3.4.2 解析过程 89
3.4.3 拼接 91
3.4.4 类型转换 93
3.4.5 小结 95
3.4.6 延伸阅读 95
第4章 语言特性 96
4.1 函数调用 96
4.1.1 调用惯例 96
4.1.2 参数传递 101
4.1.3 小结 104
4.1.4 延伸阅读 104
4.2 接口 105
4.2.1 概述 105
4.2.2 数据结构 111
4.2.3 类型转换 113
4.2.4 类型断言 116
4.2.5 动态派发 118
4.2.6 小结 122
4.2.7 延伸阅读 122
4.3 反射 123
4.3.1 三大法则 124
4.3.2 类型和值 127
4.3.3 更新变量 129
4.3.4 实现协议 130
4.3.5 方法调用 132
4.3.6 小结 135
4.3.7 延伸阅读 135
第5章 常用关键字 136
5.1 for和range 136
5.1.1 现象 137
5.1.2 经典循环 140
5.1.3 范围循环 141
5.1.4 小结 147
5.2 select 148
5.2.1 现象 148
5.2.2 数据结构 151
5.2.3 实现原理 151
5.2.4 小结 160
5.2.5 延伸阅读 161
5.3 defer 161
5.3.1 现象 161
5.3.2 数据结构 163
5.3.3 执行机制 164
5.3.4 堆中分配 164
5.3.5 栈上分配 168
5.3.6 开放编码 169
5.3.7 小结 173
5.3.8 延伸阅读 174
5.4 panic和recover 174
5.4.1 现象 175
5.4.2 数据结构 177
5.4.3 程序崩溃 178
5.4.4 崩溃恢复 179
5.4.5 小结 181
5.4.6 延伸阅读 181
5.5 make和new 181
5.5.1 make 182
5.5.2 new 183
5.5.3 小结 184
第6章 并发编程 185
6.1 上下文 185
6.1.1 设计原理 186
6.1.2 默认上下文 187
6.1.3 取消信号 188
6.1.4 传值方法 192
6.1.5 小结 192
6.1.6 延伸阅读 192
6.2 同步原语与锁 193
6.2.1 基本原语 193
6.2.2 扩展原语 209
6.2.3 小结 218
6.2.4 延伸阅读 218
6.3 计时器 219
6.3.1 设计原理 219
6.3.2 数据结构 222
6.3.3 状态机 223
6.3.4 触发计时器 229
6.3.5 小结 231
6.3.6 延伸阅读 232
6.3.7 历史变更 232
6.4 Channel 232
6.4.1 设计原理 232
6.4.2 数据结构 234
6.4.3 创建Channel 235
6.4.4 发送数据 237
6.4.5 接收数据 240
6.4.6 关闭Channel 245
6.4.7 小结 246
6.4.8 延伸阅读 246
6.5 调度器 246
6.5.1 设计原理 247
6.5.2 数据结构 255
6.5.3 调度器启动 260
6.5.4 创建Goroutine 261
6.5.5 调度循环 266
6.5.6 触发调度 269
6.5.7 线程管理 274
6.5.8 小结 276
6.5.9 延伸阅读 276
6.6 网络轮询器 276
6.6.1 设计原理 276
6.6.2 数据结构 280
6.6.3 多路复用 281
6.6.4 小结 288
6.6.5 延伸阅读 289
6.7 系统监控 289
6.7.1 设计原理 289
6.7.2 监控循环 289
6.7.3 小结 296
第7章 内存管理 297
7.1 内存分配器 297
7.1.1 设计原理 297
7.1.2 内存管理组件 304
7.1.3 内存分配 317
7.1.4 小结 322
7.1.5 延伸阅读 322
7.1.6 历史变更 322
7.2 垃圾收集器 323
7.2.1 设计原理 323
7.2.2 演进过程 331
7.2.3 实现原理 334
7.2.4 小结 358
7.2.5 延伸阅读 358
7.3 栈空间管理 358
7.3.1 设计原理 359
7.3.2 栈操作 363
7.3.3 小结 369
7.3.4 延伸阅读 370
第8章 元编程 371
8.1 插件系统 371
8.1.1 设计原理 371
8.1.2 动态库 373
8.1.3 小结 376
8.1.4 延伸阅读 376
8.2 代码生成 377
8.2.1 设计原理 377
8.2.2 代码生成 377
8.2.3 小结 382
第9章 标准库 383
9.1 JSON 383
9.1.1 设计原理 383
9.1.2 序列化 385
9.1.3 反序列化 389
9.1.4 小结 392
9.2 HTTP 392
9.2.1 设计原理 393
9.2.2 客户端 395
9.2.3 服务端 402
9.2.4 小结 406
9.3 数据库 406
9.3.1 设计原理 406
9.3.2 驱动接口 407
9.3.3 小结 410【媒体评论】Draven以开源书的形式详细地展现了Go的整个实现和原理,图文并茂的讲解方式为Gopher所津津乐道。非常高兴看到这本书终于出版了,期待成为GoCN社区的一本经典之作。——谢孟军,GoCN社区创始人、积梦智能CEO

我想Draven应该是花了大量时间钻研,才能以一种比较简单的方式把复杂的原理和实践代码的优化讲清楚。强烈推荐一读,对于大家后续业务研发、系统研发都有参考和借鉴意义。——毛剑,bilibili基础架构部负责人

《Go语言设计与实现》比较详细

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Go语言设计与实现
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon