Scala速学版(第3版)

978-7-115-64762-7
作者: 凯·S. 霍斯特曼(Cay S. Horstmann)
译者: 李晗
编辑: 陈灿然

图书目录:

第 1 章 基础 A1   1

1.1 Scala 解释器   1

1.2 声明值和变量   3

1.3 常用类型   4

1.4 算术和运算符重载   5

1.5 关于调用方法的更多内容   6

1.6 apply 方法   7

1.7 Scaladoc   8

练习   11

第 2 章 控制结构和函数 A1   12

2.1 条件表达式   12

2.2 语句终止   14

2.3 块表达式和赋值   15

2.4 输入和输出   16

2.5 循环   17

2.6 关于 for 循环的更多内容   19

2.7 函数   20

2.8 默认参数和命名参数 L1   21

2.9 可变参数 L1   22

2.10 主函数   23

2.11 无参函数   23

2.12 惰性求值 L1   24

2.13 异常   25

练习   27

第 3 章 数组操作 A1   29

3.1 定长数组  29

3.2 变长数组:数组缓冲区   30

3.3 遍历数组和数组缓冲区   31

3.4 转换数组   31

3.5 常用算法   33

3.6 解读 Scaladoc   34

3.7 多维数组   35

3.8 与 Java 的互操作   35

练习   36

第 4 章 映射、Option 和元组 A1   38

4.1 构造映射  38

4.2 访问映射值   39

4.3 更新映射值   39

4.4 遍历映射   40

4.5 链接和排序映射   41

4.6 与 Java 的互操作   41

4.7 Option 类型   42

4.8 元组   43

4.9 拉链操作   44

练习   44

第 5 章 类 A1   46

5.1 简单类和无参方法   46

5.2 带 getter 和 setter 的属性   47

5.3 仅带 getter 的属性   49

5.4 私有字段   50

5.5 辅助构造函数   51

5.6 主构造函数   52

5.7 嵌套类 L1   54

练习   55

第 6 章 对象和枚举 A1   57

6.1 单例  57

6.2 伴生对象   58

6.3 扩展类或特质的对象   58

6.4 apply 方法   59

6.5 应用程序对象   60

6.6 枚举   60

练习   62

第 7 章 包、导入和导出 A1   63

7.1 包  63

7.2 包作用域嵌套   64

7.3 链式包子句   65

7.4 文件顶部表示法   65

7.5 包级函数和变量   66

7.6 包可见性   66

7.7 导入   67

7.8 导入无处不在   67

7.9 重命名和隐藏成员   68

7.10 隐式导入   68

7.11 导出   69

练习   69

第 8 章 继承 A1   71

8.1 继承类  71

8.2 重写方法   72

8.3 类型检查和强制转换   72

8.4 超类的构造   73

8.5 匿名子类   74

8.6 抽象类   74

8.7 抽象字段   75

8.8 重写字段   75

8.9 开放类和密封类   76

8.10 受保护的字段和方法   77

8.11 构造顺序   77

8.12 Scala 继承层级结构   78

8.13 对象相等性 L1   80

8.14 多元相等性 L2   81

8.15 值类 L2   82

练习   83

第 9 章 文件和正则表达式 A1  85

9.1 读取行  85

9.2 读取字符   86

9.3 读取词法单元和数字   86

9.4 从 URL 和其他源读取   87

9.5 写入文件   87

9.6 访问目录   88

9.7 序列化   88

9.8 进程控制 A2   89

9.9 正则表达式   90

9.10 正则表达式组   92

练习   93

第 10 章 特质 L1   94

10.1 为何没有多重继承?   94

10.2 作为接口的特质   95

10.3 带具体方法的特质   96

10.4 富接口的特质   97

10.5 具有特质的对象   97

10.6 分层特质  98

10.7 重写特质中的抽象方法   99

10.8 特质中的具体字段   99

10.9 特质中的抽象字段   100

10.10 特质构造顺序   101

10.11 带参数的特质构造函数   102

10.12 扩展类的特质   103

10.13 底层机制   104

10.14 透明特质 L2   105

10.15 自类型 L2   106

练习   107

第 11 章 运算符 L1   110

11.1 标识符   110

11.2 中缀运算符   111

11.3 一元运算符   112

11.4 赋值运算符   113

11.5 优先级   113

11.6 关联性   114

11.7 apply 和 update 方法   114

11.8 unapply 方法 L2   114

11.9 unapplySeq 方法 L2   116

11.10 unapply 和 unapplySeq 方法的替代形式 L3   116

11.11 动态调用 L2   117

11.12 类型安全的选择和应用 L2   119

练习   121

第 12 章 高阶函数 L1  123

12.1 函数作为值   123

12.2 匿名函数   124

12.3 函数参数   125

12.4 参数推断   126

12.5 有用的高阶函数   126

12.6 闭包   127

12.7 与 Lambda 表达式的互操作性   128

12.8 柯里化   129

12.9 组合、柯里化和元组化的方法   129

12.10 控制抽象   130

12.11 非本地返回   131

练习   132

第 13 章 容器 A2   134

13.1 主要的容器特质   134

13.2 可变和不可变容器   136

13.3 序列   136

13.4 列表  137

13.5 集合   138

13.6 添加或删除元素的运算符   139

13.7 常用方法   141

13.8 映射函数  143

13.9 归约、折叠和扫描 A3   144

13.10 拉链操作   146

13.11 迭代器   147

13.12 惰性列表 A3   148

13.13 与 Java 容器的互操作性   150

练习   151

第 14 章 模式匹配 A2   153

14.1 更好的 switch  153

14.2 守卫  154

14.3 模式中的变量   154

14.4 类型模式  155

14.5 Matchable 特质   156

14.6 匹配数组、列表和元组   157

14.7 提取器  158

14.8 变量声明中的模式   159

14.9 for 表达式中的模式   160

14.10 样例类   161

14.11 匹配嵌套结构  162

14.12 密封类   163

14.13 参数化枚举   164

14.14 偏函数 A3   165

14.15 case 子句中的中缀表示法 L2   166

练习   167

第 15 章 注解 A2  169

15.1 什么是注解?   169

15.2 注解放置   170

15.3 注解参数   170

15.4 Java 特性的注解   171

15.4.1 Bean 属性  171

15.4.2 序列化   172

15.4.3 受检异常   172

15.4.4 可变参数   172

15.4.5 Java 修饰符   173

15.5 优化注解   173

15.5.1 尾递归   173

15.5.2 惰性值   174

15.6 错误和警告注解   175

15.7 注解声明   176

练习   177

第 16 章 Future A2   179

16.1 在 Future 中运行任务   179

16.2 等待结果   181

16.3 Try 类   182

16.4 回调  183

16.5 组合 Future 任务   183

16.6 其他 Future 转换   185

16.7 Future 对象的方法   187

16.8 Promise   188

16.9 执行上下文   189

练习   190

第 17 章 类型参数 L2   192

17.1 泛型类   192

17.2 泛型函数   193

17.3 类型变量的边界   193

17.4 上下文边界   194

17.5 ClassTag 上下文边界   195

17.6 多重边界   195

17.7 类型约束 L3   195

17.8 型变  196

17.9 协变和逆变位置   197

17.10 对象不能是泛型   199

17.11 通配符  199

17.12 多态函数   200

练习   201

第 18 章 高级类型 L2   203

18.1 联合类型   203

18.2 相交类型   204

18.3 类型别名   205

18.4 结构类型  206

18.5 字面量类型   207

18.6 单例类型操作符   208

18.7 抽象类型  210

18.8 依赖类型  211

18.9 抽象类型边界   212

练习   213

第 19 章 上下文抽象 L3   216

19.1 上下文参数   216

19.2 上下文参数的更多内容   217

19.3 声明 given 实例   219

19.4 for 和 match 表达式中的 given  221

19.5 导入 given   221

19.6 扩展方法  222

19.7 扩展方法的查找位置   223

19.8 隐式转换  225

19.9 隐式转换规则   226

19.10 导入隐式转换   227

19.11 上下文函数   227

19.12 证据   229

19.13 @implicitNotFound 注解   230

练习   231

第 20 章 类型级编程 L3   233

20.1 匹配类型   233

20.2 异构列表   234

20.3 字面量类型算术运算   236

20.4 内联代码   238

20.5 类型类   240

20.6 镜像   242

20.7 类型类派生   244

20.8 高级类型   245

20.9 类型 Lambda 表达式   247

20.10 宏简介  248

练习  251

详情

本书是一本系统地介绍Scala语言的入门图书,针对Scala 3进行了全面的更新,不仅覆盖了Scala语言的基础知识,而且涵盖了许多更复杂的概念,并最终深入到非常高级的内容。 本书共分20章,首先介绍了Scala语言的基础概念,以及控制结构和函数、数组操作、映射、Option、元组、类、对象和枚举、包、导入和导出、继承、文件和正则表达式等关键概念;其次介绍了特质、运算符、高阶函数、容器、模式匹配、注解、Future、类型参数、高级类型、上下文抽象和类型级编程等高级内容。每章都标记了一个级别标签,告诉你本章的难易程度,以及它是面向应用程序员还是库设计者。本书以紧凑的形式呈现内容,提供了许多实用的示例代码,还给出了基于作者实际经验的提示、注意和警告。 本书适合有一定编程经验、对Scala感兴趣,并希望尽快掌握Scala核心概念和用法的开发者阅读。

图书摘要

相关图书

Rust游戏开发实战
Rust游戏开发实战
仓颉编程快速上手
仓颉编程快速上手
深入浅出Go语言编程从原理解析到实战进阶
深入浅出Go语言编程从原理解析到实战进阶
JUnit实战(第3版)
JUnit实战(第3版)
Go语言编程指南
Go语言编程指南
Kafka实战
Kafka实战

相关文章

相关课程