| 1.简介 | 1.1 编程语言 Overview 1.2 Scala 的发展历程
 1.3 Scala 语言的特性
 1.4  Scala 初体验
 1.5 社区和相关书籍推荐
 | 
| 2.安装配置和基本操作 | 2.1下载 Scala 编译器 2.2环境变量配置
 2.3使用 Scala 的交互式 shell
 2.4使用 IDE
 
   | 
| 3.REPL使用方式 | 3.1启动,使用 3.2 REPL 的命令行选项
 3.3粘贴代码块
 3.4:load 命令
 3.5增加 JAR 文件和  Class 到 REPL 的 classpath
 3.6 REPL 中运行 Shell 命令
 | 
| 4.基本类型和操作 | 4.1整数表示 4.2 String 表示
 4.3 Boolean  表示
 4.4操作符
 4.5对象的相等性
 4.6操作符优先级和结合性
 | 
| 5.控制结构 | 5.1 If 表达式 5.2 While 表达式
 5.3 For  表达式
 5.4异常处理
 5.5关于break和continue
 | 
| 6.函数式编程 | 6.1基本概念 6.2可变长参数、命名参数、带默认值的函数
 6.3部分应用函数
 6.4闭包
 6.5传名和传值
 6.6递归和尾递归
 6.7高阶函数
 6.8柯里化
 | 
| 7.类和对象 | 7.1 class 定义 7.2定义操作符
 7.3隐式转换
 7.4 Scala 的类库层级结构
 7.5 Scala 的  package
 7.6类,成员,方法的访问权限
 | 
| 8.类的继承 | 8.1抽象类 8.2扩展类
 8.3重载 methods 和  fields
 8.4调用超类的构造器
 8.5构造顺序
 8.6多态和动态绑定
 8.7定义final 成员
 | 
| 9.特质 | 9.1什么是“特质”,”特质”如何工作? 9.2 Ordered  特质介绍
 9.3以栈的形式扩展多个特质
 9.4用特质还是抽象类
 | 
| 10.Generic 和 Subtyping 及 Variance | 10.1 LSP介绍 10.2类型参数
 10.3类型边界
 10.4 Variance
 | 
| 11.模式匹配 | 11.1 Case classes 11.2模式匹配
 11.3模式的种类
 11.4模式匹配的顺序
 11.5 Sealed  classes
 11.6 Option 类型
 | 
| 12.抽取器 | 12.1 什么是抽取器 12.2 0 个 1 个变量的模式
 12.3 可变长度的抽取器
 12.4 抽取器和序列模式
 12.5  正则表达式
 | 
| 13.隐式转换和参数 | 13.1什么是隐式转换 13.2隐式转换规则
 13.3使用隐式转换的情况
 13.4隐式转换优先级
 13.5上下文定界和视图定界
 13.6隐式转换和类型
 | 
| 14.List 介绍 | 14.1 List的构造 14.2 List的基本操作
 14.3 List模式匹配
 85. 14.4  ListBuffer介绍
 
 | 
| 15.For 表达式深入探讨 | 15.1 For 表达式介绍 15.2模式匹配
 15.3 For表达式的转换过程
 
 | 
| 16.Annotations | 16.1什么是注解 16.2 Scala 注解 VS Java  注解
 16.3什么可以被注解
 16.4注解参数
 16.5自定义注解实现
 96. 16.6针对Java特性的注解
 97.  16.7用于优化的注解
 98. 16.8用于错误和警告的注解
 
 
 | 
| 17.对象相等性 | 17.1 Scala 中对象相等性的基本概念 17.2如何编写相等性的方法
 
 
 | 
| 18.与 Java 交互 | 18.1 Scala 中如何使用 Java 类 18.2 Java 中如何使用 Scala 类
 
 |