编辑器 / 1
shell / 2
安装(Windows) / 5
安装(Mac) / 9
安装(Linux) / 13
运行Scala / 19
注释 / 20
编写脚本 / 21
值 / 22
数据类型 / 24
变量 / 27
表达式 / 29
条件表达式 / 31
计算顺序 / 34
组合表达式 / 37
总结1 / 41
方法 / 45
类和对象 / 50
ScalaDoc / 54
创建类 / 55
类中的方法 / 58
导入和包 / 61
测试 / 65
域 / 70
for循环 / 72
Vector / 75
更多的条件表达式 / 79
总结2 / 82
模式匹配 / 91
类参数 / 94
具名参数和缺省参数 / 98
重载 / 101
构造器 / 104
辅助构造器 / 108
类的练习 / 110
case类 / 112
字符串插值 / 115
参数化类型 / 117
作为对象的函数 / 120
map和reduce / 125
推导 / 128
基于类型的模式匹配 / 133
基于case类的模式匹配 / 136
简洁性 / 139
风格拾遗 / 144
地道的Scala / 147
定义操作符 / 148
自动字符串转换 / 151
元组 / 153
伴随对象 / 157
继承 / 163
基类初始化 / 166
覆盖方法 / 170
枚举 / 173
抽象类 / 176
特征 / 179
统一访问方式和setter / 185
衔接Java / 187
应用 / 190
浅尝反射 / 192
多态 / 194
组合 / 200
使用特征 / 206
标记特征和case对象 / 209
类型参数限制 / 211
使用特征构建系统 / 214
序列 / 219
列表和递归 / 223
将序列与zip相结合 / 226
集 / 229
映射表 / 232
引用和可修改性 / 235
使用元组的模式匹配 / 238
用异常进行错误处理 / 242
构造器和异常 / 247
用Either进行错误报告 / 250
用Option对“非任何值”
进行处理 / 255
用Try来转换异常 / 261
定制错误报告机制 / 269
按契约设计 / 276
记日志 / 279
扩展方法 / 282
使用类型类的可扩展系统 / 285
接下来如何深入学习 / 290
附录A AtomicTest / 291
附录B 从Java中调用
Scala / 293
索引 / 295
展开