标签
内容简介
本书是 Scala 语言的权威教程与参考书之一,由 Scala 的缔造者 Martin Odersky 与 Lex Spoon、Bill Venners 合著,中文版由长期从事 Scala 推广与翻译的高宇翔翻译。全书面向已有一定编程经验的开发者,采用循序渐进的讲解方式:先从一个可以用几行代码完成的小程序入手,让读者快速感受 Scala 的写法;再依次深入类与对象、基础类型与操作、函数与闭包、控制抽象、组合与继承、特质、包与引入、断言与测试、样例类与模式匹配等核心语言机制。 在语言基础之后,书中进一步讨论列表与其他集合类、可变对象、类型参数化、抽象成员、隐式转换与隐式参数、列表的实现方式、for 表达式、Scala 集合架构、提取器、注解、XML 处理、用对象实现模块化编程、对象相等性以及 Scala 与 Java 的互操作等进阶主题,并以 Future 与并发编程、组合子解析、GUI 编程和一个完整的试算表(SCells)案例收尾,展示如何把这些特性组合起来构建实际程序。 第3版针对 Scala 2.12 做了更新,补充了字符串插值、Future 与并发(含 2.12 新增方法与 ScalaTest 3.0 中的异步测试)、通配符类型、hashCode 编写建议、Scala 2.12 与 Java 8 的深度整合(如用函数字面量实现 SAM 类型)、隐式类、自定义 AnyVal、类型类的上下文界定语法等内容。全书强调“为什么这样设计”,帮助读者不仅会写 Scala,也理解语言取舍背后的动因,其中的函数式与面向对象思想对不直接使用 Scala 的读者同样有参考价值。
编辑推荐
市面上讲 Scala 的书不少,但由语言设计者本人系统写下来的,只有这一本。《Scala编程》自第1版起就被视为 Scala 领域的“正典”,第3版跟进到 Scala 2.12,把字符串插值、Future 与并发、隐式类、AnyVal、SAM 转换、上下文界定等新特性都纳入了讲解。 它的写法与速查型书籍不同:不满足于告诉你“这样写能跑”,而是解释语言为什么这样设计、在面向对象与函数式之间做了哪些取舍。许多读者反馈,读完前几章的入门示例后,对 Scala 的语法糖不再感到突兀;读到特质、隐式、集合架构等章节时,才真正理解这门语言的组织方式。第29章“用对象实现模块化编程”、第30章“对象相等性”、第25章“Scala集合架构”这几章尤其能体现作者的功力。 中文版由高宇翔翻译,他此前译过《快学Scala》与《Scala编程》第1版,术语处理较为稳定。全书832页、约123万字,属于需要长期放在案头反复查阅的类型。 需要提醒的是:这是一本讲语言本身的书,不是框架实战手册,也不覆盖 Scala 3。如果你的目标是尽快上手 Spark 或 Akka,它可以作为底座,但不该是唯一一本。
适合谁读
适合
- 已掌握 Java 或其他主流语言、希望系统学习 Scala 的开发者
- 需要理解函数式与面向对象如何融合的中高级程序员
- 使用 Spark、Akka 等 Scala 生态框架,想补足语言基础的数据工程师
- 讲授编程语言、函数式编程课程的高校教师与研究生
不适合
- 完全没有编程经验的零基础读者,入门示例的跨度偏大
- 只想学 Scala 3 新语法(given、enum、上下文抽象)的读者,本书基于 Scala 2.12
- 急需框架实战配方、希望照抄代码解决业务问题的人
阅读建议
- 第1—3章可快速通读,感受 Scala 的写法;第4—15章建议逐章跟敲示例,打牢语法与对象模型。
- 第21章隐式转换、第25章集合架构、第29章模块化编程是难点,可先读一遍留印象,实践中再回看。
- 把第35章 SCells 试算表当作综合练习,边读边运行,检验前面各章特性的串联效果。
- 若时间有限,可先读第1、6、10、12、15、16、19、21章,掌握最常用的语言骨架,其余作为参考查阅。
出版社简介
电子工业出版社
中国 · 成立于 1982 年
电子工业出版社是一家以电子信息及相关领域为出版特色的综合性出版社。从库内三千余种图书来看,其出版方向覆盖编程设计、人工智能、计算机综合、财经、摄影与社科等门类,既关注技术前沿,也兼顾大众阅读。代表图书包括《因子投资:方法与实践》《x86汇编语言:从实模式到保护模式》《RISC-V开放架构设计之道》《人工智能:语音识别理解与实践》《相控阵雷达技术》《雷达目标特性》及《100个Go语言典型错误》等,多围绕技术方法与工程实践展开。作者资源方面,有石川、李忠、王晓波、大卫·帕特森、安德鲁·沃特曼、余子濠等中外作者。受公开资料所限,暂不展开更多出版特色。
目录
- 序
- 致谢
- 引言
- 第1章 一门可伸缩的语言
- 第2章 Scala入门
- 第3章 Scala入门(续)
- 第4章 类和对象
- 第5章 基础类型和操作
- 第6章 函数式对象
- 第7章 内建的控制结构
- 第8章 函数和闭包
- 第9章 控制抽象
- 第10章 组合和继承
- 第11章 Scala的继承关系
- 第12章 特质
- 第13章 包和引入
- 第14章 断言和测试
- 第15章 样例类和模式匹配
- 第16章 使用列表
- 第17章 使用其他集合类
- 第18章 可变对象
- 第19章 类型参数化
- 第20章 抽象成员
- 第21章 隐式转换和隐式参数
- 第22章 实现列表
- 第23章 重访for表达式
- 第24章 深入集合类
- 第25章 Scala集合架构
- 第26章 提取器
- 第27章 注解
- 第28章 使用XML
- 第29章 用对象实现模块化编程
- 第30章 对象相等性
- 第31章 结合Scala与Java
- 第32章 Future和并发编程
- 第33章 组合子解析
- 第34章 GUI编程
- 第35章 SCells试算表
- 附录A Unix和Windows环境的Scala脚本
- 术语表
常见问题
这本书讲的是 Scala 2 还是 Scala 3?
中文版《Scala编程(第3版)》对应英文版 Programming in Scala 第三版,内容基于 Scala 2.12,涵盖该版本的字符串插值、Future 等特性,不涉及 Scala 3 的 given、enum 等新语法。
零基础可以直接读这本书吗?
不太建议。本书明确面向有一定编程经验的开发者,讲解偏重语言设计与原理。若有 Java 或其他面向对象语言基础,读起来会顺畅得多;完全没有编程经验者宜先读一本通用入门书。
和《快学Scala》有什么区别?
《快学Scala》偏重快速上手与要点速查,篇幅紧凑;本书由语言设计者撰写,讲解更系统、更深入设计动因,适合作为长期案头参考。两者译者均为高宇翔。
中文版的结构和英文原版一致吗?
一致。中文版对应英文第三版,共35章,从“一门可伸缩的语言”讲到 SCells 试算表,另含附录A“Unix和Windows环境的Scala脚本”与术语表,全书832页。
书里的代码示例还能直接运行吗?
大部分示例基于 Scala 2.12,在 Scala 2.13 上多数仍可运行,但集合类与部分 API 存在调整。建议用 2.12 或 2.13 环境对照练习,遇到编译错误优先查对应版本的 API 文档。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。