Scala是一种针对 JVM 的通用的编程语言,用来以简明、优雅、类型安全的方式表示常见的编程模式。它无缝集成了面向对象语言和函数式语言的特性,可以大大提高JAVA程序员的编程效率。Twitter、SAP等知名企业已经开始在一些应用里使用Scala,很多新的程序员也开始学习它。
本书循序渐进地介绍了Scala的函数式编程基础,虽然篇幅短小,却切中要害。读者可以学会使用Scala静态语言的强大功能创建简洁、可扩展、高度可并行的代码。对于多核时代JVM上的并发编程,Scala是绝好的工具,而本书是你必不可少的向导。
第1章 简介 1
1.1 为何选择Scala 1
1.2 何为Scala 3
1.3 函数式编程 7
1.4 本书的内容 9
1.5 本书面向的读者 11
1.6 致谢 11
第2章 起步 13
2.1 下载Scala 13
2.2 安装Scala 13
2.2.1 在Windows上安装Scala 14
2.2.2 在类UNIX系统上安装Scala 14
2.3 让Scala跑起来 15
2.4 命令行上的Scala 16
2.5 把Scala代码当作脚本运行 17
2.5.1 在类UNIX系统上作为脚本运行 17
2.5.2 在Windows上作为脚本运行 18
2.6 在IDE里面运行Scala 18
2.7 编译Scala 19
第3章 Scala步入正轨 20
3.1 把Scala当作简洁的Java 20
3.2 Java基本类型对应的Scala类 23
3.3 元组与多重赋值 23
3.4 字符串与多行原始字符串 25
3.5 自适应的默认做法 26
3.6 运算符重载 27
3.7 Scala带给Java程序员的惊奇 29
3.7.1 赋值的结果 29
3.7.2 Scala的== 30
3.7.3 分号是半可选的 31
3.7.4 默认的访问修饰符 32
3.7.5 默认的访问修饰符以及如何修改 32
3.7.6 Scala的Protected 33
3.7.7 细粒度访问控制 34
3.7.8 避免显式return 35
第4章 Scala的类 37
4.1 创建类 37
4.2 定义字段、方法和构造函数 38
4.3 类继承 41
4.4 单例对象 42
4.5 独立对象和伴生对象 43
4.6 Scala中的static 44
第5章 自适应类型 46
5.1 容器和类型推演 47
5.2 Any类型 49
5.3 关于Nothing的更多情况 50
5.4 Option类型 50
5.5 方法返回类型推演 51
5.6 传递变参 52
5.7 参数化类型的可变性 53
第6章 函数值和闭包 57
6.1 从普通函数迈向高阶函数 57
6.2 函数值 58
6.3 具有多参数的函数值 59
6.4 Curry化 61
6.5 重用函数值 62
6.6 参数的位置记法 64
6.7 Execute Around Method模式 65
6.8 偏应用函数 67
6.9 闭包 68
第7章 Trait和类型转换 70
7.1 Trait 70
7.2 选择性混入 72
7.3 以trait进行装饰 74
7.4 Trait方法的延迟绑定 75
7.5 隐式类型转换 77
第8章 使用容器 81
8.1 常见的Scala容器 81
8.2 使用Set 82
8.3 使用Map 83
8.4 使用List 85
8.5 for表达式 90
第9章 模式匹配和正则表达式 93
9.1 匹配字面量和常量 93
9.2 匹配通配符 94
9.3 匹配元组和列表 94
9.4 类型和卫述句的匹配 96
9.5 case表达式里的模式变量和常量 96
9.6 对XML片段进行模式匹配 98
9.7 使用case类进行模式匹配 98
9.8 使用提取器进行匹配 100
9.9 正则表达式 103
9.10 把正则表达式当做提取器 104
第10章 并发编程 106
10.1 促进不变性 106
10.2 使用Actor的并发 107
10.3 消息传递 110
10.4 Actor类 113
10.5 actor方法 115
10.6 receive和receiveWithin方法 117
10.7 react和reactWithin方法 120
10.8 loop和loopWhile 124
10.9 控制线程执行 125
10.10 在各种接收方法中选择 127
第11章 与Java互操作 128
11.1 在Scala里使用Scala类 128
11.2 在Scala里使用Java类 130
11.3 在Java里使用Scala类 132
11.3.1 有普通函数和高阶函数的Scala类 132
11.3.2 同trait一起工作 134
11.3.3 单例对象和伴生对象 134
11.4 继承类 136
第12章 用Scala做单元测试 138
12.1 使用JUnit 138
12.2 使用ScalaTest 139
12.3 以Canary测试开始 140
12.4 使用Runner 140
12.5 Asserts 142
12.6 异常测试 144
12.7 在测试间共享代码 146
12.7.1 用BeforeAndAfter共享代码 146
12.7.2 用闭包共享代码 147
12.8 FunSuite的函数式风格 148
12.9 用JUnit运行ScalaTest 149
第13章 异常处理 152
13.1 异常处理 152
13.2 注意catch顺序 154
第14章 使用Scala 156
14.1 净资产应用实例 156
14.2 获取用户输入 156
14.3 读写文件 157
14.4 XML,作为一等公民 159
14.5 读写XML 161
14.6 从Web获取股票价格 164
14.7 让净资产应用并发 167
14.8 为净资产应用增加GUI 168
附录A Web资源 178
《天津滨海新区史话》内容简介:天津滨海新区地处海河下游、渤海湾西岸,河海相依,临海近都,区位优越。这里曾是中国人民抗击外侮
本书论述了信息检索的有关概念与基本知识,以及Internt重要的中外文搜索引擎与检索技巧,介绍了网上各类型电子信息和重要专题信息
《旅游电子商务教程(第三版)》内容简介:本教材采用体验式情景模式,构造了以欧阳逍遥同学为代表的大学生对于旅游电子商务进行探
MATLAB R2016a完全自学一本通-畅销升级版-附赠近150页超值电子书 本书特色 本书面向MATLAB的初中级读者,在介绍MATLAB R2016a集成...
当今学术界对线上交流、用户创建内容以及共享媒体等内容依然采取忽视的态度,甚至禁止在媒体以及学校中传播和教授,但数字文化的
本书是一部优秀的、注重实践的JavaScript教程。作者首先概览了JavaScript,包括它的语法、良好的编码习惯、DOM编程原则等;然后构
《中国区域经济发展报告(2018)》内容简介:2019年是我国改革开放的第41年,也是区域经济学成立的第30年,因此本书以“回顾改革开
《储蓄投资金融政治经济学》内容简介:在货币经济中,储蓄投资决策分离,使得统一的积累过程变成三个相互联系而又相对独立的过程,
PHP编程-第3版 本书特色 这是一本可以让读者深入了解php 技术的书籍,作者用言简意赅的语言并结合了大量实例来解释每一个要素。本书涵盖了php 所有...
Microsoft.NET框架为简化开发与卫联网无缝连接的应用程序和组件提供了强大的技术支持,如ASP.NETWeb窗体、XMLWeb服务以及Windows
本书紧紧围绕下一代(XC)移动网络发展前沿的热点问题,依据XC移动网络的最新标准,以XC移动网络技术与应用为核心,比较全面和系统
《马克思主义与伦理学(第3辑)》内容简介:《马克思主义与伦理学》是由中国人民大学伦理学与道德建设研究中心主办的专业学术集刊,
《微店+营销,你该这样玩》内容简介:微商,诞生于2009年,2014年开始被大家所熟知。微店的各种操作、功能都属于基础知识,是每个微
Forundergraduate-levelcoursesinSignalsandSystems.Thiscomprehensiveexplorationofs...
《普京政治经济学》内容简介:20世纪90年代,休克疗法将处于经济社会转型中的俄罗斯推到崩溃的边缘。进入21世纪后,在普京“强国富
《前行笔记之耕耘心田》内容简介:耕耘生活的同时,别让心田荒芜了。《前行笔记之耕耘心田》是一部修心著作,由当今深具影响力的作
书名:完全手册:PHP网络开发详解作者:孙鹏程等编著来源:电子工业出版社出版时间:2007年07月ISBN:9787121046483定价:89元第1
书分三部分,一是知识,是那些问而不详则枉称字型设计师的事情;二是方法论,工作室看待问题解决问题的方式;三是成功的商业委托
《Python编程:从入门到实践(第2版)》内容简介:本书是针对所有层次Python读者而作的Python入门书。全书分两部分:第一部分介绍用
《数字营销:6堂课教你玩转新媒体营销》内容简介:全书在参考大量国内外文献的基础上,从理论与案例两个层面系统全面地介绍了社会化