| 作者: | Martin Odersky, Lex Spoon, Bill Venners, and Frank Sommers |
| 语言: | 英文 |
| 出版年份: | 2021 |
| 编程语言: | Scala |
| 下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
《Programming in Scala》第五版是Scala语言创建者Martin Odersky及其团队编写的权威教程,于2021年更新至Scala 3.0版本。作为Scala语言的"圣经",本书由语言设计者亲自撰写,全面介绍了Scala这一融合面向对象和函数式编程的现代编程语言。书名"Scala"意为"可扩展的语言",体现了该语言从小型脚本到大型系统都能适用的设计理念。
本书共25章,系统性地从基础到高级全面覆盖Scala语言特性,分为渐进式学习路径:
基础入门部分(第1-3章) 第1章"可扩展的语言"概述Scala的设计理念、历史背景和为什么选择Scala。Scala运行在标准Java和JavaScript平台上,与所有平台库无缝互操作。第2章"Scala第一步"通过实际编程任务快速入门,包括使用Scala REPL、定义变量和函数、编写脚本、循环和条件判断等。第3章"Scala下一步"深入更多基础编程任务,包括类型参数化数组、列表、元组、集合和映射的使用,以及识别函数式风格和map/for-yield转换。
核心语言特性(第4-13章) 第4章介绍类和对象,包括字段、方法、分号推断、单例对象、案例类和Scala应用程序。第5章详细讲解基本类型和操作,涵盖字面量、字符串插值、操作符作为方法、算术、关系和逻辑操作等。第6章通过有理数类示例深入函数式对象概念。
第7章全面介绍内置控制结构:if表达式、while循环、for表达式、try异常处理和match表达式。第8章深入函数和闭包,包括方法、局部函数、一等公民函数、函数字面量简写、部分应用函数等。第9章讲解控制抽象,包括减少代码重复、简化客户端代码、柯里化、编写新控制结构等。
第10章探讨组合与继承,通过二维布局库示例展示抽象类、类扩展、方法重写、多态和动态绑定等概念。第11章详细介绍特质(Traits)作为混入组合机制,包括特质工作原理、可堆叠修改、特质参数等。第12章讲解包、导入和导出,处理大型编程中的组织问题。第13章介绍模式匹配,特别是案例类和模式匹配在处理树状递归数据时的优势。
集合和类型系统(第14-25章) 第14-15章深入集合框架,详细介绍列表及其他集合(数组、元组、集合、映射)的使用。第16章讲解可变对象及其在Scala中的语法表达,通过离散事件模拟案例研究展示可变对象实践。第17章分析Scala的继承层次结构,包括通用方法和底部类型。
第18章探讨类型参数化,通过纯函数队列类的设计示例展示信息隐藏技术,包括类型参数的变型。第19章介绍枚举和代数数据类型。第20章详细描述Scala支持的各种抽象成员:方法、字段和类型都可以声明为抽象。
第21章讲解given机制,帮助处理函数的上下文参数,减少样板代码。第22章介绍扩展方法,使外部定义的函数看起来像是类的方法。第23章涵盖类型类概念。第24章深入集合库内部,提供详细导览。第25章讲解断言和测试,重点介绍ScalaTest测试框架。
本书建议按章节顺序从前到后阅读,因为每个新主题都基于已介绍的概念。书中有大量程序示例,建议亲自输入代码并尝试变体以加深理解。本书既是教程也是语言参考,阅读后可作为全面的语言参考资料。Scala 3.0版本引入了重要改进,如given和using关键字替代隐式转换,使意图优先于机制。建议读者结合在线论坛和实际编程项目进行学习,以获得最佳学习效果。本书电子版包含丰富的超链接和导航功能,便于查阅和反馈。