封面
版权信息
内容简介
对早前版本《Scala编程》的赞许
译者序
序
致谢
引言
第1章 一门可伸缩的语言
1.1 一门按需伸缩的语言
1.2 是什么让Scala能屈能伸
1.3 为什么要用Scala
1.4 Scala寻根
1.5 结语
第2章 Scala入门
第1步 使用Scala解释器
第2步 定义变量
第3步 定义函数
第4步 编写Scala脚本
第5步 用while做循环;用if做判断
第6步 用foreach和for遍历
结语
第3章 Scala入门(续)
第7步 用类型参数化数组
第8步 使用列表
第9步 使用元组
第10步 使用集和映射
第11步 识别函数式编程风格
第12步 从文件读取文本行
结语
第4章 类和对象
4.1 类、字段和方法
4.2 分号推断
4.3 单例对象
4.4 Scala应用程序
4.5 App特质
4.6 结语
第5章 基础类型和操作
5.1 一些基础类型
5.2 字面量
5.3 字符串插值
5.4 操作符即方法
5.5 算术操作
5.6 关系和逻辑操作
5.7 位运算操作
5.8 对象相等性
5.9 操作符优先级和结合性
5.10 富包装类
5.11 结语
第6章 函数式对象
6.1 Rational类的规格定义
6.2 构建Rational
6.3 重新实现toString方法
6.4 检查前置条件
6.5 添加字段
6.6 自引用
6.7 辅助构造方法
6.8 私有字段和方法
6.9 定义操作符
6.10 Scala中的标识符
6.11 方法重载
6.12 隐式转换
6.13 注意事项
6.14 结语
第7章 内建的控制结构
7.1 if表达式
7.2 while循环
7.3 for表达式
7.4 用try表达式实现异常处理
7.5 match表达式
7.6 没有break和continue的日子
7.7 变量作用域
7.8 对指令式代码进行重构
7.9 结语
第8章 函数和闭包
8.1 方法
8.2 局部函数
8.3 一等函数
8.4 函数字面量的简写形式
8.5 占位符语法
8.6 部分应用的函数
8.7 闭包
8.8 特殊的函数调用形式
8.9 尾递归
8.10 结语
第9章 控制抽象
9.1 减少代码重复
9.2 简化调用方代码
9.3 柯里化
9.4 编写新的控制结构
9.5 传名参数
9.6 结语
第10章 组合和继承
10.1 一个二维的布局类库
10.2 抽象类
10.3 定义无参方法
10.4 扩展类
10.5 重写方法和字段
- APP免费
10.6 定义参数化字段
- APP免费
10.7 调用超类构造方法
- APP免费
10.8 使用override修饰符
- APP免费
10.9 多态和动态绑定
- APP免费
10.10 声明final成员
- APP免费
10.11 使用组合和继承
- APP免费
10.12 实现above、beside和toString
- APP免费
10.13 定义工厂对象
- APP免费
10.14 增高和增宽
- APP免费
10.15 放在一起
- APP免费
10.16 结语
- APP免费
第11章 Scala的继承关系
- APP免费
11.1 Scala的类继承关系
- APP免费
11.2 基本类型的实现机制
- APP免费
11.3 底类型(bottom types)
- APP免费
11.4 定义自己的值类型
- APP免费
11.5 结语
- APP免费
第12章 特质
- APP免费
12.1 特质如何工作
- APP免费
12.2 瘦接口和富接口
- APP免费
12.3 示例:矩形对象
- APP免费
12.4 Ordered特质
- APP免费
12.5 作为可叠加修改的特质
- APP免费
12.6 为什么不用多重继承
- APP免费
12.7 要特质还是不要特质
- APP免费
12.8 结语
- APP免费
第13章 包和引入
- APP免费
13.1 将代码放进包里
- APP免费
13.2 对相关代码的精简访问
- APP免费
13.3 引入
- APP免费
13.4 隐式引入
- APP免费
13.5 访问修饰符
- APP免费
13.6 包对象
- APP免费
13.7 结语
- APP免费
第14章 断言和测试
- APP免费
14.1 断言
- APP免费
14.2 用Scala写测试
- APP免费
14.3 翔实的失败报告
- APP免费
14.4 作为规格说明的测试
- APP免费
14.5 基于性质的测试
- APP免费
14.6 组织和运行测试
- APP免费
14.7 结语
- APP免费
第15章 样例类和模式匹配
- APP免费
15.1 一个简单的例子
- APP免费
15.2 模式的种类
- APP免费
15.3 模式守卫
- APP免费
15.4 模式重叠
- APP免费
15.5 密封类
- APP免费
15.6 Option类型
- APP免费
15.7 到处都是模式
- APP免费
15.8 一个复杂的例子
- APP免费
15.9 结语
- APP免费
第16章 使用列表
- APP免费
16.1 List字面量
- APP免费
16.2 List类型
- APP免费
16.3 构建列表
- APP免费
16.4 列表的基本操作
- APP免费
16.5 列表模式
- APP免费
16.6 List类的初阶方法
- APP免费
16.7 List类的高阶方法
- APP免费
16.8 List对象的方法
- APP免费
16.9 同时处理多个列表
- APP免费
16.10 理解Scala的类型推断算法
- APP免费
16.11 结语
- APP免费
第17章 使用其他集合类
- APP免费
17.1 序列
- APP免费
17.2 集和映射
- APP免费
17.3 在可变和不可变集合类之间选择
- APP免费
17.4 初始化集合
- APP免费
17.5 元组
- APP免费
17.6 结语
- APP免费
第18章 可变对象
- APP免费
18.1 什么样的对象是可变的
- APP免费
18.2 可被重新赋值的变量和属性
- APP免费
18.3 案例分析:离散事件模拟
- APP免费
18.4 用于描述数字电路的语言
- APP免费
18.5 Simulation API
- APP免费
18.6 电路模拟
- APP免费
18.7 结语
- APP免费
第19章 类型参数化
- APP免费
19.1 函数式队列
- APP免费
19.2 信息隐藏
- APP免费
19.3 型变注解
- APP免费
19.4 检查型变注解
- APP免费
19.5 下界
- APP免费
19.6 逆变
- APP免费
19.7 对象私有数据
- APP免费
19.8 上界
- APP免费
19.9 结语
- APP免费
第20章 抽象成员
- APP免费
20.1 抽象成员概览
- APP免费
20.2 类型成员
- APP免费
20.3 抽象的val
- APP免费
20.4 抽象的var
- APP免费
20.5 初始化抽象的val
- APP免费
20.6 抽象类型
- APP免费
20.7 路径依赖类型
- APP免费
20.8 改良类型
- APP免费
20.9 枚举
- APP免费
20.10 案例分析:货币
- APP免费
20.11 结语
- APP免费
第21章 隐式转换和隐式参数
- APP免费
21.1 隐式转换
- APP免费
21.2 隐式规则
- APP免费
21.3 隐式转换到一个预期的类型
- APP免费
21.4 转换接收端
- APP免费
21.5 隐式参数
- APP免费
21.6 上下文界定
- APP免费
21.7 当有多个转换可选时
- APP免费
21.8 调试
- APP免费
21.9 结语
- APP免费
第22章 实现列表
- APP免费
22.1 List类的原理
- APP免费
22.2 ListBuffer类
- APP免费
22.3 List类的实践
- APP免费
22.4 外部可见的函数式
- APP免费
22.5 结语
- APP免费
第23章 重访for表达式
- APP免费
23.1 for表达式
- APP免费
23.2 N皇后问题
- APP免费
23.3 用for推导式进行查询
- APP免费
23.4 用for推导式进行翻译
- APP免费
23.5 反过来
- APP免费
23.6 泛化for表达式
- APP免费
23.7 结语
- APP免费
第24章 深入集合类
- APP免费
24.1 可变和不可变集合
- APP免费
24.2 集合的一致性
- APP免费
24.3 Iterable特质
- APP免费
24.4 序列型特质Seq、IndexedSeq和LinearSeq
- APP免费
24.5 集
- APP免费
24.6 映射
- APP免费
24.7 具体的不可变集合类
- APP免费
24.8 具体的可变集合类
- APP免费
24.9 数组
- APP免费
24.10 字符串
- APP免费
24.11 性能特征
- APP免费
24.12 相等性
- APP免费
24.13 视图
- APP免费
24.14 迭代器
- APP免费
24.15 从头创建集合
- APP免费
24.16 Java和Scala集合互转
- APP免费
24.17 结语
- APP免费
第25章 Scala集合架构
- APP免费
25.1 抽取公共操作
- APP免费
25.2 集成新的集合
- APP免费
25.3 结语
- APP免费
第26章 提取器
- APP免费
26.1 示例:提取电子邮箱地址
- APP免费
26.2 提取器
- APP免费
26.3 提取0或1个变量的模式
- APP免费
26.4 提取可变长度参数的模式
- APP免费
26.5 提取器和序列模式
- APP免费
26.6 提取器和样例类的对比
- APP免费
26.7 正则表达式
- APP免费
26.8 结语
- APP免费
第27章 注解
- APP免费
27.1 为什么要有注解
- APP免费
27.2 注解的语法
- APP免费
27.3 标准注解
- APP免费
27.4 结语
- APP免费
第28章 使用XML
- APP免费
28.1 半结构化数据
- APP免费
28.2 XML概览
- APP免费
28.3 XML字面量
- APP免费
28.4 序列化
- APP免费
28.5 拆解XML
- APP免费
28.6 反序列化
- APP免费
28.7 加载和保存
- APP免费
28.8 对XML做模式匹配
- APP免费
28.9 结语
- APP免费
第29章 用对象实现模块化编程
- APP免费
29.1 问题描述
- APP免费
29.2 食谱应用程序
- APP免费
29.3 抽象
- APP免费
29.4 将模块拆分成特质
- APP免费
29.5 运行时链接
- APP免费
29.6 跟踪模块实例
- APP免费
29.7 结语
- APP免费
第30章 对象相等性
- APP免费
30.1 Scala中的相等性
- APP免费
30.2 编写相等性方法
- APP免费
30.3 为参数化类型定义相等性
- APP免费
30.4 如何编写equals和hashCode方法
- APP免费
30.5 结语
- APP免费
第31章 结合Scala和Java
- APP免费
31.1 从Java使用Scala
- APP免费
31.2 注解
- APP免费
31.3 通配类型
- APP免费
31.4 同时编译Scala和Java
- APP免费
31.5 Java 8集成
- APP免费
31.6 结语
- APP免费
第32章 Future和并发编程
- APP免费
32.1 天堂里的烦恼
- APP免费
32.2 异步执行和Try
- APP免费
32.3 使用Future
- APP免费
32.4 测试Future
- APP免费
32.5 结语
- APP免费
第33章 组合子解析
- APP免费
33.1 示例:算术表达式
- APP免费
33.2 运行你的解析器
- APP免费
33.3 基本的正则表达式解析器
- APP免费
33.4 另一个示例:JSON
- APP免费
33.5 解析器输出
- APP免费
33.6 实现组合子解析器
- APP免费
33.7 字符串字面量和正则表达式
- APP免费
33.8 词法分析和解析
- APP免费
33.9 错误报告
- APP免费
33.10 回溯和LL(1)
- APP免费
33.11 结语
- APP免费
第34章 GUI编程
- APP免费
34.1 第一个Swing应用程序
- APP免费
34.2 面板和布局
- APP免费
34.3 处理事件
- APP免费
34.4 示例:摄氏/华氏转换器
- APP免费
34.5 结语
- APP免费
第35章 SCells试算表
- APP免费
35.1 可视化框架
- APP免费
35.2 将数据录入和显示分开
- APP免费
35.3 公式
- APP免费
35.4 解析公式
- APP免费
35.5 求值
- APP免费
35.6 操作类库
- APP免费
35.7 变更通知
- APP免费
35.8 结语
- APP免费
附录 Unix和Windows环境的Scala脚本
- APP免费
术语表
- APP免费
关于作者
- APP免费
反侵权盗版声明
更新时间:2021-06-10 14:36:08