Go语言学习笔记 作者:雨痕
Go语言学习笔记 出版社:电子工业出版社
Go语言学习笔记 内容简介
作为时下流行的一种系统编程语言,Go 简单易学,性能很好,且支持各类主流平台。已有大量项目采用 Go 编写,这其中就包括 Docker 等明星作品,其开发和执行效率早已被证明。《Go语言学习笔记》经四年多逐步完善,内容覆盖了语言、运行时、性能优化、工具链等各层面知识。且内容经大量读者反馈和校对,没有明显的缺陷和错误。上卷细致解析了语言规范相关细节,便于读者深入理解语言相关功能的使用方法和注意事项。下卷则对运行时源码做出深度剖析,引导读者透彻了解语言功能背后的支持环境和运行体系,诸如内存分配、垃圾回收和并发调度等。《Go语言学习笔记》不适合编程初学入门,可供有实际编程经验或正在使用Go 工作的人群参考。
Go语言学习笔记 目录
前言
上卷 语言详解
第1章 概述
1.1 特征
1.2 简介
第2章 类型
2.1 变量
2.2 命名
2.3 常量
2.4 基本类型
2.5 引用类型
2.6 类型转换
2.7 自定义类型
第3章 表达式
3.1 保留字
3.2 运算符
3.3 初始化
3.4 流控制
第4章 函数
4.1 定义
4.2 参数
4.3 返回值
4.4 匿名函数
4.5 延迟调用
4.6 错误处理
第5章 数据
5.1 字符串
5.2 数组
5.3 切片
5.4 字典
5.5 结构
第6章 方法
6.1 定义
6.2 匿名字段
6.3 方法集
6.4 表达式
第7章 接口
7.1 定义
7.2 执行机制
7.3 类型转换
7.4 技巧
第8章 并发
8.1 并发的含义
8.2 通道
8.3 同步
第9章 包结构
9.1 工作空间
9.2 导入包
9.3 组织结构
9.4 依赖管理
第10章 反射
10.1 类型
10.2 值
10.3 方法
10.4 构建
10.5 性能
第11章 测试
11.1 单元测试
11.2 性能测试
11.3 代码覆盖率
11.4 性能监控
第12章 工具链
12.1 安装
12.2 工具
12.3 编译
下卷 源码剖析
第13章 准备
第14章 引导
第15章 初始化
第16章 内存分配
16.1 概述
16.2 初始化
16.3 分配
16.4 回收
16.5 释放
16.6 其他
第17章 垃圾回收
17.1 概述
17.2 初始化
17.3 启动
17.4 标记
17.5 清理
17.6 监控
17.7 其他
第18章 并发调度
18.1 概述
18.2 初始化
18.3 任务
18.4 线程
18.5 执行
18.6 连续栈
18.7 系统调用
18.8 监控
18.9 其他
第19章 通道
19.1 创建
19.2 收发
19.3 选择
第20章 延迟
20.1 定义
20.2 性能
20.3 错误
第21章 析构
21.1 设置
21.2 清理
21.3 执行
第22章 缓存池
22.1 初始化
22.2 操作
22.3 清理
Go语言学习笔记 精彩文摘
抛开语法样式不谈,单就类型和规则而言,Go与C99、C11相似之处颇多,这也是我能接受它被冠以“NextC”名号的重要原因。
即便我是个坚定的C拥趸,也不得不承认,它处于简单和复杂的两极。C简单到你每写下一行代码,都能在脑中想象出编译后的模样,指令如何执行,内存如何分配,等等。而C的复杂在于,它有太多隐晦而不着边际的规则,着实让人头疼。相比较而言,Go从零开始,没有历史包袱,在汲取众多经验教训后,可从头规划一个规则严谨、条理简单的世界。
人们习惯拿关键字和控制语句的数量来作为Go简单的例证,我倒觉着这并不合适。诚然,更少的语言规则有助于入门学习,这无可厚非。但更重要的在于,语言规则严谨,没有歧义,更没什么黑魔法变异用法。任何人写出的代码都基本一致,这才是简单的本质。放弃部分“灵活”和“自由”,换来更好的维护性,我觉得是值得的。
将“++”、“--”从运算符降级为语句,保留指针,但默认阻止指针运算。初时的不习惯,并不能掩盖它们带来的长期的好处。还有,将切片和字典作为内置类型,从运行时的层面进行优化,这也算是一种“简单”。
本文来自卿尘投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。