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
《头部主播养成计划:打造你的超级带货力》内容简介:如何定义电商和新零售?为什么直播卖货如此火爆?如何选择合适的直播带货平台
《极端的未来:超越未来的十大趋势》一书讲述了石油资源行将告罄,人类将如何面对?气候变化将使地球变得怎么样?惊人发展的医疗科
《生育制度》内容简介:《生育制度》是费孝通1946年根据他在西南联大和云南大学任教时的讲义整理而成,围绕“家庭三角”这一核心议
《不忘初心》内容简介:不忘初心,牢记使命 研究中国共产党,是一门大学问。对很多西方学者来说,中国共产党始终是个谜。他们热衷于
《云转型:技术、人员、流程、模型与运营》内容简介:本书探讨了企业云转型的时代趋势和转型过程中总结的经验教训,分为两部分。第
《Android程序开发范例宝典》内容简介:本书紧密围绕开发人员在开发过程中遇到的实际问题和开发中应该掌握的技术,全面介绍了应用A
"HTML5andJavaScriptWebApps"isaboutbuildingwebapplicationswithHTML5andW3Cspecific...
《机甲素描技法》内容简介:本书内容详尽,包括机械零件的构造和特征、绘制零件的要点及阴影表现手法、零件组合的技巧、机甲的身体
《成年人居家科学健身方法指导》内容简介:《成年人居家科学健身方法指导》由国家体育总局体育科学研究所的健身专家倾力打造,书中
《实用社交礼仪》内容简介:礼仪是一首古老而年轻的诗,“飘散着舒人而温馨的国风”;礼仪是一曲涓涓的高山流水,吟唱着中华五千年
《财务报表:快学快用实操笔记》内容简介:本书不仅由浅入深、由易到难地对财务报表的相关知识点进行了系统的编排,而且通过在每节
《徐肖冰传》内容简介:在摄影机后面观察历史的人,他用镜头定格20世纪中国的烽火硝烟、恩怨情仇,用影像鲜活了一段中国现代革命史
《索尼微单摄影宝典:相机设置+拍摄技法+场景实战+后期处理》内容简介:本书是专门为索尼微单用户编写的一本相机使用与实拍技法宝典
MATLAB 优化算法案例分析与应用 本书特色 本书全面而系统地介绍了matlab算法和案例应用,涉及面广,从基本操作到高级算法应用,几乎涵盖matlab算法的...
Imageware 逆向造型技术及3D打印-(含光盘1张) 本书特色 imageware被誉为全球四大知名逆向造型软件之一,具有强大的逆向造型功能,在国内外已得...
一个会点石成金的神仙分别问三个人想要什么。第一个人说,我要很多很多的金子,然后神仙用手指往他面前的石头一点,石头就变成了
具时滞的神经网络模型的分支问题研究 本书特色 本书是作者参与完成国家高技术研究发展计划(863计划)课题、国家自然科学基金项目、吉林省教育厅科学研究规划项目研究...
本书为美国业余无线电转播联盟(ARRL)出版、里奇·阿兰德(K7SZ)编写的LowPowerCommunication第3版中的中文译本。QRP在Q简语里意为
《HeadFirstJava》是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以
《搜索引擎:原理技术与系统》系统地介绍了互联网搜索引擎的工作原理、实现技术及其系统构建方案。《搜索引擎:原理技术与系统》分