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
深度学习从入门到实战 本书特色 深度学习:从入门到实战摒弃了枯燥的理论推导,以大量实战应用案例及知识模块等内容帮助机器学习领域的初、中级程序员踏实通过深度学习的...
《小池大鱼》内容简介:不是每个企业都可以成为行业龙头。一些聪明的企业,会在细分市场做垂度和深度,做小池塘里的大鱼,进而成为
TheSeriesinCommunicationTechnologyandSocietyisanintegratedseriescenteringontheso...
ANSYS流固耦合分析与工程实例 本书特色 这本《ansys流固耦合分析与工程实例》由宋学官、蔡林、张华编著,本书有以下特色:贴近工程实际——本书的实例多从实际...
《杰出青少年的哈佛智商》内容简介:本书从介绍智力的各个方面考虑,为家长和孩子提供切实可行的有效方法,对兴趣和智力的作用、非
《刀与星辰》内容简介:徐皓峰影评集。书中从颇受瞩目的大制作《卧虎藏龙》《赤壁》《十面埋伏》,到独具风格的《放·逐》《春夏秋
《蒋丰看日本:说说十大日本侵华人物》内容简介:本书第一次全方位地掀开二战期间东条英机等甲级战犯及其他侵华人物的成长面纱,揭露
《现代性的谱系》内容简介:本书从错综复杂的现代性图谱中抽离出“世俗趣味”“工具理性”“个性表现”三种典型取向,并将“自由主
《你早该这样玩小米手机》内容简介:《你早该这样玩小米手机》教您如何迅速成为小米手机高手。全书对小米手机好玩好用的部分进行精
《短视频运营:爆款打造+数据分析+引流涨粉+商业推广》内容简介:作为一名资深的短视频运营者,作者对抖音、快手、微信视频号等平台
《FlashActionScript3.0动画高级教程》是介绍Flash10ActionScript动画高级技术的经典之作,是作者在这一领域中多年实践经验的结晶
《企业应用架构模式经典重读》内容简介:本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现
《屏幕字体设计:从符号语言到意义构建》内容简介:屏幕作为一种新型媒介,其出现带来了更复杂、更具创造性的挑战。想要全面了解屏
Python编程实战-运用设计模式.并发和程序库创建高质量程序 本书特色 本书主要关注了四个方面,即:优雅编码设计模式、通过并发和编译后的python(cyth...
MoreandmoreprogrammersareturningtoPythonandthisbookwillgivethemtheunderstandingt...
《人生谁能无补丁》内容简介:作为著名散文家和学者,梁衡先生曾说,人生不如意事常八九,有低谷、叹息、哭泣与遗憾,但这就是人生
远程接入网络疑难解析 本书特色 本书适用面向日常工作需要的网络管理者或者管理员、网络或咨询工程师以及远程接入咨询师。同时本书适合为希望获得CCNP和CCIE证书...
信息系统项目管理师考试辅导-(针对上午考试) 内容简介 本书按照人力资源和社会保障部、工业和信息化部全国计算机技术与软件专业技术资格(不平)考试要求编写。作者依...
《孩子们喜爱的国宝故事》内容简介:本书是继《孩子们喜爱的民间故事》《孩子们喜爱的民俗故事》《孩子们喜爱的诗词故事》,毛晓青
《守正创新 铸魂育人》内容简介:中国式现代化是物质文明和精神文明相协调的现代化。物质富足、精神富有是社会主义现代化的根本要求