作品简介
作为时下流行的一种系统编程语言,Go简单易学,性能很好,且支持各类主流平台。已有大量项目采用Go编写,这其中就包括Docker等明星作品,其开发和执行效率早已被证明。本书经四年多逐步完善,内容覆盖了语言、运行时、性能优化、工具链等各层面知识。且内容经大量读者反馈和校对,没有明显的缺陷和错误。上卷细致解析了语言规范相关细节,便于读者深入理解语言相关功能的使用方法和注意事项。下卷则对运行时源码做出深度剖析,引导读者透彻了解语言功能背后的支持环境和运行体系,诸如内存分配、垃圾回收和并发调度等。本书不适合编程初学入门,可供有实际编程经验或正在使用Go工作的人群参考。
雨痕:自1996年从事计算机软件开发工作以来,已20春秋。期间供职于北大方正、西单电子商务、九城数码、知乎等公司。主要从事核心开发、架构设计,以及部分管理工作。
作品目录
前言
读者定位
联系方式
本书的版本历程
上卷 语言详解
第1章 概述
语法简单
并发模型
内存分配
垃圾回收
静态链接
标准库
工具链
源文件
变量
表达式
函数
数据
方法
接口
并发
第2章 类型
定义
简短模式
多变量赋值
未使用错误
命名建议
空标识符
枚举
展开
别名
语法歧义
未命名类型
第3章 表达式
优先级
二元运算符
位运算符
自增
指针
if...else...
switch
for
goto,continue,break
第4章 函数
建议命名规则
变参
命名返回值
闭包
误用
性能
error
panic,recover
第5章 数据
转换
性能
Unicode
指针
复制
reslice
append
copy
安全
性能
空结构
匿名字段
字段标签
内存布局
第6章 方法
Method Expression
Method Value
第7章 接口
第8章 并发
Wait
GOMAXPROCS
Local Storage
Gosched
Goexit
收发
单向
选择
模式
性能
资源泄漏
第9章 包结构
环境变量
相对路径
自定义路径
权限
初始化
内部包
第10章 反射
第11章 测试
testing
table driven
test main
example
timer
memory
第12章 工具链
go build
go install
go get
go env
go clean
交叉编译
条件编译
预处理
下卷 源码剖析
第13章 准备
第14章 引导
第15章 初始化
第16章 内存分配
内存块
管理组件
recordspan
第17章 垃圾回收
三色标记和写屏障
控制器
辅助回收
扫描
标记
并行任务框架
缓存队列
内存状态统计
第18章 并发调度
findrunnable
lockedg
stackcache
morestack
stackfree
抢占调度
Gosched
gopark
notesleep
Goexit
stopTheWorld
第19章 通道
同步
异步
关闭
第20章 延迟
第21章 析构
第22章 缓存池
载入中