-
内容大纲
本书深入介绍Go编程语言及其相关的标准运行时库。本书的目标读者是已经掌握Java编程语言并希望将Java知识用于指导Go学习的程序员。读者将深入了解Go语言,并很好地了解各种Go标准库。
通过阅读本书,你将能够:
熟悉关键的Go运行时库及其与Java库的比较;
了解何时适合使用Go语言而不是Java语言;
阅读并理解用Go编写的程序;
了解Go的开发流程;
确定针对具体的应用程序,哪种语言更有优势;了解Go与Java语言在开发经验上的互通之处。 -
作者介绍
巴里·费根鲍姆(Barry Feigenbaum),拥有数十年的软件工程相关经验,拥有计算机工程(专注于面向对象软件设计)博士学位和电气工程学位。他曾任职于IBM、Amazon等行业领先公司,目前就职于戴尔,担任高级首席软件工程师。他在技术杂志和评审期刊上发表了多篇文章,与人合著了几本关于IBMPC-DOS的书,并拥有20多项美国专利。 -
目录
前言
致谢
作者简介
第一部分 初步了解Go
第1章 Go简介
1.1 Go与Java的初步比较
1.1.1 Go是编译型语言(Java是解释型语言)
1.1.2 Go与Java的程序结构类似
1.1.3 Go与Java有影响代码结构的代码风格差异
1.1.4 Go和Java都是过程语言
1.1.5 Java是一门面向对象的语言,但Go不是完全面向对象的
1.1.6 Java是一门高度函数式语言,Go不是
1.1.7 Java是一门高度声明性语言,Go不是
1.1.8 很多Java特性是注解驱动的
1.1.9 Java和Go都使用内存管理(垃圾收集器)
1.1.10 Go和Java都支持并发,但方式不同
1.1.11 Go的运行时比JRE简单
1.1.12 Go程序构建过程是不同的
1.1.13 Go与Java有相似的发布周期
1.2 Java有而Go没有的特性
1.2.1 多重赋值
1.2.2 语句和操作符
1.2.3 assert语句
1.2.4 while与do语句
1.2.5 throw语句/throws子句
1.2.6 strictfp、transient、volatile、synchronized、abstract、static
1.2.7 对象、类、内部类、Lambda、this、super、显式构造函数
1.2.8 泛型和方法
1.2.9 广泛的函数式编程能力
1.2.10 原始值的装箱
1.2.11 源码注解
1.2.12 多种可见性
1.2.13 重载/覆盖函数
1.2.14 正式的枚举
1.2.15 内置二进制数据自序列化
1.2.16 并发集合
1.3 Go与Java的深度比较
第二部分 Go语言
第2章 Go的基础特性
2.1 语言关键字
2.2 操作符和标点符号
2.3 Go操作符优先级
2.4 Go内置函数
第3章 Go的关键特性
3.1 简单的Go程序示例
3.2 Go包
3.3 Go注释
3.4 Go构建/运行过程
3.4.1 Go集成开发环境
3.4.2 构建Go程序
3.4.3 运行Go程序
3.4.4 字节码与实码
3.5 Go命令行工具
3.5.1 捆绑在Go命令中的工具
3.5.2 其他工具
3.6 Go运行程序而非类
3.7 Go内存管理
3.8 Go标识符
3.9 Go作用域Go作用域与Go源文件
3.10 初始化Go变量
3.11 Go标识符的生命期
3.12 Go模块摘要
3.13 Go赋值和表达式
3.14 Go中的文本格式设置
3.15 Go协程(并发执行单元)
3.15.1 并发问题
3.15.2 Go并发
3.15.3 Go协程示例
第4章 Go类型
4.1 基本/内置类型
4.1.1 数值
4.1.2 字符和字符串
4.1.3 引用与指针类型
4.1.4 深入基本数据类型
4.1.5 方法作为函数
4.1.6 任何被声明的类型都可以有自定义函数
4.1.7 函数作为值
4.1.8 结构字段
4.1.9 结构体字面量
4.1.10 嵌套结构
4.1.11 结构体字段对齐
4.1.12 接口
4.1.13 复合接口
4.2 变量声明
4.3 常量声明
4.4 类型转换
4.5 类型测试
4.6 派生类型声明
第5章 错误与panic
5.1 Go错误
5.2 Go panic
5.3 错误与panic演示
第6章 Go语句
6.1 包与导入语句
6.2 赋值语句
6.3 声明变量
6.4 声明命名常量
6.5 if/else语句
6.6 switch语句
6.7 while语句
6.8 do-while语句
6.9 带索引的for语句
6.10 遍历集合的for语句
6.11 无限循环
6.12 break与continue语句
6.13 goto语句
6.14 return语句
6.15 defer语句
6.16 go语句
6.17 select语句
第7章 接口应用
7.1 接口是核心
7.2 有关依赖注入
7.3 面向切面编程
第8章 Go单元测试和基准测试
8.1 Go测试用例和基准测试
8.2 Java测试用例
第9章 Go的未来
9.1 改进的错误处理
9.2 Go泛型
9.3 生命游戏的capstone示例
9.4 生命游戏的Go源代码
9.4.1 Java实现的capstone项目
9.4.2 Go实现的capstone项目
9.5 API输出
9.6 Game输出
第三部分 Go库综述
第10章 主要包比较
10.1 Java语言包
10.2 JavaIO包
10.3 Java Text包
10.4 Java Time包
10.5 Java Util包
第11章 重要方法/函数比较
第12章 Go包概述
12.1 Go的文件访问
12.2 压缩服务
12.2.1 存档包
12.2.2 压缩包
12.3 image包
12.4 Input/Output(I/O)
12.5 字节包
12.6 格式化包
12.7 数据集合
12.8 排序
12.9 上下文包
12.10 密码学、哈希和数据编码
12.11 encoding包
第13章 SQL数据库访问
第14章 客户端和服务器支持
14.1 MIME包
14.2 网络包
14.3 net包
14.4 HTTP template包
14.5 net.http包
14.6 URL包
第15章 Go运行时
15.1 errors包
15.2 flag包
15.3 log包
15.4 math包
15.5 操作系统支持包
15.6 reflection包
15.7 正则表达式包
15.8 Go runtime包
15.9 字符串处理包
15.10 并发与Go协程
15.11 测试包
15.12 time和date包
附录
附录A 安装Go
附录B Go的常见问题
有关类型的问题
有关值的问题
有关最佳编程实践的问题
有关指针和内存分配的问题
有关并发的问题
有关函数的问题
附录C Go的常见陷阱
附录D 标记-清除算法的伪码
附录E ASCII与UTF-8
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...