展开全部

主编推荐语

本书全面涵盖整个编程语言、重要类库及其背后理念,编排、组织和示例设置堪称语言学习典范。

内容简介

本书由直接参与Scala开发的一线人员编写,因而对原理的解读和对应用的把握更加值得信赖。

本书面向具有一定编程经验的开发者,目标是让读者能够全面了解和掌握Scala编程语言的核心特性,并能够深入理解Scala这门语言在设计取舍背后的动因。即便是不直接使用Scala的读者或非一线编程从业者,也能从本书中学到大量关于函数式和面向对象的编程概念和技巧。

目录

  • 版权信息
  • 内容简介
  • 对早前版本《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 重写方法和字段
  • 10.6 定义参数化字段
  • 10.7 调用超类构造方法
  • 10.8 使用override修饰符
  • 10.9 多态和动态绑定
  • 10.10 声明final成员
  • 10.11 使用组合和继承
  • 10.12 实现above、beside和toString
  • 10.13 定义工厂对象
  • 10.14 增高和增宽
  • 10.15 放在一起
  • 10.16 结语
  • 第11章 Scala的继承关系
  • 11.1 Scala的类继承关系
  • 11.2 基本类型的实现机制
  • 11.3 底类型(bottom types)
  • 11.4 定义自己的值类型
  • 11.5 结语
  • 第12章 特质
  • 12.1 特质如何工作
  • 12.2 瘦接口和富接口
  • 12.3 示例:矩形对象
  • 12.4 Ordered特质
  • 12.5 作为可叠加修改的特质
  • 12.6 为什么不用多重继承
  • 12.7 要特质还是不要特质
  • 12.8 结语
  • 第13章 包和引入
  • 13.1 将代码放进包里
  • 13.2 对相关代码的精简访问
  • 13.3 引入
  • 13.4 隐式引入
  • 13.5 访问修饰符
  • 13.6 包对象
  • 13.7 结语
  • 第14章 断言和测试
  • 14.1 断言
  • 14.2 用Scala写测试
  • 14.3 翔实的失败报告
  • 14.4 作为规格说明的测试
  • 14.5 基于性质的测试
  • 14.6 组织和运行测试
  • 14.7 结语
  • 第15章 样例类和模式匹配
  • 15.1 一个简单的例子
  • 15.2 模式的种类
  • 15.3 模式守卫
  • 15.4 模式重叠
  • 15.5 密封类
  • 15.6 Option类型
  • 15.7 到处都是模式
  • 15.8 一个复杂的例子
  • 15.9 结语
  • 第16章 使用列表
  • 16.1 List字面量
  • 16.2 List类型
  • 16.3 构建列表
  • 16.4 列表的基本操作
  • 16.5 列表模式
  • 16.6 List类的初阶方法
  • 16.7 List类的高阶方法
  • 16.8 List对象的方法
  • 16.9 同时处理多个列表
  • 16.10 理解Scala的类型推断算法
  • 16.11 结语
  • 第17章 使用其他集合类
  • 17.1 序列
  • 17.2 集和映射
  • 17.3 在可变和不可变集合类之间选择
  • 17.4 初始化集合
  • 17.5 元组
  • 17.6 结语
  • 第18章 可变对象
  • 18.1 什么样的对象是可变的
  • 18.2 可被重新赋值的变量和属性
  • 18.3 案例分析:离散事件模拟
  • 18.4 用于描述数字电路的语言
  • 18.5 Simulation API
  • 18.6 电路模拟
  • 18.7 结语
  • 第19章 类型参数化
  • 19.1 函数式队列
  • 19.2 信息隐藏
  • 19.3 型变注解
  • 19.4 检查型变注解
  • 19.5 下界
  • 19.6 逆变
  • 19.7 对象私有数据
  • 19.8 上界
  • 19.9 结语
  • 第20章 抽象成员
  • 20.1 抽象成员概览
  • 20.2 类型成员
  • 20.3 抽象的val
  • 20.4 抽象的var
  • 20.5 初始化抽象的val
  • 20.6 抽象类型
  • 20.7 路径依赖类型
  • 20.8 改良类型
  • 20.9 枚举
  • 20.10 案例分析:货币
  • 20.11 结语
  • 第21章 隐式转换和隐式参数
  • 21.1 隐式转换
  • 21.2 隐式规则
  • 21.3 隐式转换到一个预期的类型
  • 21.4 转换接收端
  • 21.5 隐式参数
  • 21.6 上下文界定
  • 21.7 当有多个转换可选时
  • 21.8 调试
  • 21.9 结语
  • 第22章 实现列表
  • 22.1 List类的原理
  • 22.2 ListBuffer类
  • 22.3 List类的实践
  • 22.4 外部可见的函数式
  • 22.5 结语
  • 第23章 重访for表达式
  • 23.1 for表达式
  • 23.2 N皇后问题
  • 23.3 用for推导式进行查询
  • 23.4 用for推导式进行翻译
  • 23.5 反过来
  • 23.6 泛化for表达式
  • 23.7 结语
  • 第24章 深入集合类
  • 24.1 可变和不可变集合
  • 24.2 集合的一致性
  • 24.3 Iterable特质
  • 24.4 序列型特质Seq、IndexedSeq和LinearSeq
  • 24.5 集
  • 24.6 映射
  • 24.7 具体的不可变集合类
  • 24.8 具体的可变集合类
  • 24.9 数组
  • 24.10 字符串
  • 24.11 性能特征
  • 24.12 相等性
  • 24.13 视图
  • 24.14 迭代器
  • 24.15 从头创建集合
  • 24.16 Java和Scala集合互转
  • 24.17 结语
  • 第25章 Scala集合架构
  • 25.1 抽取公共操作
  • 25.2 集成新的集合
  • 25.3 结语
  • 第26章 提取器
  • 26.1 示例:提取电子邮箱地址
  • 26.2 提取器
  • 26.3 提取0或1个变量的模式
  • 26.4 提取可变长度参数的模式
  • 26.5 提取器和序列模式
  • 26.6 提取器和样例类的对比
  • 26.7 正则表达式
  • 26.8 结语
  • 第27章 注解
  • 27.1 为什么要有注解
  • 27.2 注解的语法
  • 27.3 标准注解
  • 27.4 结语
  • 第28章 使用XML
  • 28.1 半结构化数据
  • 28.2 XML概览
  • 28.3 XML字面量
  • 28.4 序列化
  • 28.5 拆解XML
  • 28.6 反序列化
  • 28.7 加载和保存
  • 28.8 对XML做模式匹配
  • 28.9 结语
  • 第29章 用对象实现模块化编程
  • 29.1 问题描述
  • 29.2 食谱应用程序
  • 29.3 抽象
  • 29.4 将模块拆分成特质
  • 29.5 运行时链接
  • 29.6 跟踪模块实例
  • 29.7 结语
  • 第30章 对象相等性
  • 30.1 Scala中的相等性
  • 30.2 编写相等性方法
  • 30.3 为参数化类型定义相等性
  • 30.4 如何编写equals和hashCode方法
  • 30.5 结语
  • 第31章 结合Scala和Java
  • 31.1 从Java使用Scala
  • 31.2 注解
  • 31.3 通配类型
  • 31.4 同时编译Scala和Java
  • 31.5 Java 8集成
  • 31.6 结语
  • 第32章 Future和并发编程
  • 32.1 天堂里的烦恼
  • 32.2 异步执行和Try
  • 32.3 使用Future
  • 32.4 测试Future
  • 32.5 结语
  • 第33章 组合子解析
  • 33.1 示例:算术表达式
  • 33.2 运行你的解析器
  • 33.3 基本的正则表达式解析器
  • 33.4 另一个示例:JSON
  • 33.5 解析器输出
  • 33.6 实现组合子解析器
  • 33.7 字符串字面量和正则表达式
  • 33.8 词法分析和解析
  • 33.9 错误报告
  • 33.10 回溯和LL(1)
  • 33.11 结语
  • 第34章 GUI编程
  • 34.1 第一个Swing应用程序
  • 34.2 面板和布局
  • 34.3 处理事件
  • 34.4 示例:摄氏/华氏转换器
  • 34.5 结语
  • 第35章 SCells试算表
  • 35.1 可视化框架
  • 35.2 将数据录入和显示分开
  • 35.3 公式
  • 35.4 解析公式
  • 35.5 求值
  • 35.6 操作类库
  • 35.7 变更通知
  • 35.8 结语
  • 附录 Unix和Windows环境的Scala脚本
  • 术语表
  • 关于作者
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。