编辑器 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 Atomi cTest 291
附录B 从Java中调用Scala 293
索引 295