《Scala编程思想(原书第2版)》介绍了Scala的基础特性,采用短小精悍的“原子”解构Scala语言的元素和方法。一个“原子”即为一个小型知识点,通过代码示例引导读者逐步领悟Scala的要义,结合练习鼓励读者在实践中读懂并写出地道的Scala代码。
本书无需编程背景知识,适合Scala初学者阅读。同时,本书也为有经验的程序员提供了“快车道”,共同探索编程语言未来的模样。
·本书原则:积跬步以至千里,无任何前向引用,无任何对其他语言的引用,事实胜于雄辩,实践出真知。
·何谓“原子”:从Scala中提炼出一个可运行的核心功能子集,形成众多短小精悍的“原子”,再辅以练习和解答,使整个阅读过程成为带有许多检查点的渐进式学习体验,而不是在Scala庞大的知识体系中囫囵吞枣。
·写给未来的代码:相比于Java,Scale更加简洁、合理、高效、强大。但本书包含的只是编程和Scala的基础知识,它们不会使你晕头转向,而是在踏上更高级的编程之路时祝你一臂之力。
作者简介 · · · · · ·
作者:
Bruce Eckel
获得多项大奖的《Java编程思想》《C++编程思想》及其他众多著作的作者。他在编程世界中耕耘了30余载——著书、讲座、举办研讨会和提供咨询。
Dianne Marsh
她从2008年以来一直在使用和研究Scala。自1987年开始从事编程工作起,熟知的语言从C到C#、从Python到Java,但她发现Scala出类拔萃且妙趣横生。
译者:
陈昊鹏 上海交通大学软件学院副教授,从事软件工程和分布式计算方面的研究,译作有《Java编程思想》《Java核心技术·卷Ⅱ》《Java编程语言》等。
目录 · · · · · ·
编辑器 / 1
shell / 2
安装(Windows) / 5
安装(Mac) / 9
安装(Linux) / 13
运行Scala / 19
注释 / 20
编写脚本 / 21
值 / 22
数据类型 / 24
变量 / 27
表达式 / 29
条件表达式 / 31
计算顺序 / 34
组合表达式 / 37
总结1 / 41
方法 / 45
类和对象 / 50
ScalaDoc / 54
创建类 / 55
类中的方法 / 58
导入和包 / 61
测试 / 65
域 / 70
for循环 / 72
Vector / 75
更多的条件表达式 / 79
总结2 / 82
模式匹配 / 91
类参数 / 94
具名参数和缺省参数 / 98
重载 / 101
构造器 / 104
辅助构造器 / 108
类的练习 / 110
case类 / 112
字符串插值 / 115
参数化类型 / 117
作为对象的函数 / 120
map和reduce / 125
推导 / 128
基于类型的模式匹配 / 133
基于case类的模式匹配 / 136
简洁性 / 139
风格拾遗 / 144
地道的Scala / 147
定义操作符 / 148
自动字符串转换 / 151
元组 / 153
伴随对象 / 157
继承 / 163
基类初始化 / 166
覆盖方法 / 170
枚举 / 173
抽象类 / 176
特征 / 179
统一访问方式和setter / 185
衔接Java / 187
应用 / 190
浅尝反射 / 192
多态 / 194
组合 / 200
使用特征 / 206
标记特征和case对象 / 209
类型参数限制 / 211
使用特征构建系统 / 214
序列 / 219
列表和递归 / 223
将序列与zip相结合 / 226
集 / 229
映射表 / 232
引用和可修改性 / 235
使用元组的模式匹配 / 238
用异常进行错误处理 / 242
构造器和异常 / 247
用Either进行错误报告 / 250
用Option对“非任何值”
进行处理 / 255
用Try来转换异常 / 261
定制错误报告机制 / 269
按契约设计 / 276
记日志 / 279
扩展方法 / 282
使用类型类的可扩展系统 / 285
接下来如何深入学习 / 290
附录A AtomicTest / 291
附录B 从Java中调用
Scala / 293
索引 / 29