9.3
豆瓣评分
可以朗读
语音朗读
408千字
字数
2022-02-01
发行日期
展开全部
主编推荐语
本书由直接参与Scala开发的一线人员编写,深入介绍了Scala这门结合面向对象和函数式的编程语言的核心特性和设计取舍。
内容简介
继第4版后,时隔一年,本书迎来重大更新,内容覆盖Scala3.0,对新的缩进语法、并集类型、交集类型、枚举、代数数据类型、上下文参数、特质参数、扩展方法、类型族等都有详细介绍。
本书适合有一定编程经验的开发者阅读,尤其是对Scala3.0新特性感兴趣的开发者朋友。即便是不直接使用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-do遍历
- 结语
- 第3章 Scala入门(续)
- 第7步 用类型参数化数组
- 第8步 使用列表
- 第9步 使用元组
- 第10步 使用集和映射
- 第11步 识别函数式编程风格
- 第12步 用map方法和for-yield变换
- 结语
- 第4章 类和对象
- 4.1 类、字段和方法
- 4.2 分号推断
- 4.3 单例对象
- 4.4 样例类
- 4.5 Scala应用程序
- 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 SAM类型
- 8.10 尾递归
- 8.11 结语
- 第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章 特质
- 11.1 特质如何工作
- 11.2 瘦接口和富接口
- 11.3 作为可叠加修改的特质
- 11.4 为什么不用多重继承
- 11.5 特质参数
- 11.6 结语
- 第12章 包、引入和导出
- 12.1 将代码放进包里
- 12.2 对相关代码的精简访问
- 12.3 引入
- 12.4 隐式引入
- 12.5 访问修饰符
- 12.6 顶层定义
- 12.7 导出
- 12.8 结语
- 第13章 样例类和模式匹配
- 13.1 一个简单的例子
- 13.2 模式的种类
- 13.3 模式守卫
- 13.4 模式重叠
- 13.5 密封类
- 13.6 对Option进行模式匹配
- 13.7 到处都是模式
- 13.8 一个复杂的例子
- 13.9 结语
- 第14章 使用列表
- 14.1 List字面量
- 14.2 List类型
- 14.3 构建列表
- 14.4 列表的基本操作
- 14.5 列表模式
- 14.6 List类的初阶方法
- 14.7 List类的高阶方法
- 14.8 List对象的方法
- 14.9 同时处理多个列表
- 14.10 理解Scala的类型推断算法
- 14.11 结语
- 第15章 使用其他集合类
- 15.1 序列
- 15.2 集和映射
- 15.3 在可变和不可变集合之间选择
- 15.4 初始化集合
- 15.5 元组
- 15.6 结语
- 第16章 可变对象
- 16.1 什么样的对象是可变的
- 16.2 可被重新赋值的变量和属性
- 16.3 案例分析:离散事件模拟
- 16.4 用于描述数字电路的语言
- 16.5 模拟API
- 16.6 电路模拟
- 16.7 结语
- 第17章 Scala的继承关系
- 17.1 Scala的类继承关系
- 17.2 基本类型的实现机制
- 17.3 底类型
- 17.4 定义自己的值类型
- 17.5 交集类型
- 17.6 并集类型
- 17.7 透明特质
- 17.8 结语
- 第18章 类型参数化
- 18.1 函数式队列
- 18.2 信息隐藏
- 18.3 型变注解
- 18.4 检查型变注解
- 18.5 下界
- 18.6 逆变
- 18.7 上界
- 18.8 结语
- 第19章 枚举
- 19.1 枚举数据类型
- 19.2 代数数据类型
- 19.3 泛化代数数据类型
- 19.4 为什么说ADT是代数数据类型
- 19.5 结语
- 第20章 抽象成员
- 20.1 抽象成员概览
- 20.2 类型成员
- 20.3 抽象的val
- 20.4 抽象的var
- 20.5 初始化抽象的val
- 20.6 抽象类型
- 20.7 路径依赖类型
- 20.8 改良类型
- 20.9 案例分析:货币
- 20.10 结语
- 第21章 上下文参数
- 21.1 上下文参数的工作原理
- 21.2 参数化的上下文参数类型
- 21.3 匿名上下文参数
- 21.4 作为类型族的参数化上下文参数
- 21.5 上下文参数的引入
- 21.6 上下文参数的规则
- 21.7 当有多个上下文参数可选时
- 21.8 调试上下文参数
- 21.9 结语
- 第22章 扩展方法
- 22.1 扩展方法的基础
- 22.2 泛化的扩展方法
- 22.3 成组的扩展方法
- 22.4 使用类型族
- 22.5 针对上下文参数的扩展方法
- 22.6 Scala如何查找扩展方法
- 22.7 结语
- 第23章 类型族
- 23.1 为什么要用类型族
- 23.2 上下文界定
- 23.3 主方法
- 23.4 跨界相等性
- 23.5 隐式转换
- 23.6 类型族案例分析:JSON序列化
- 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章 断言和测试
- 25.1 断言
- 25.2 用Scala写测试
- 25.3 翔实的失败报告
- 25.4 作为规格说明的测试
- 25.5 基于属性的测试
- 25.6 组织和运行测试
- 25.7 结语
- 术语表
- 关于作者
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。