当前位置:主页 > 书籍配套资源 > Scala配套资源
《Scala实用指南》源代码

《Scala实用指南》源代码

  • 更新:2021-08-03
  • 大小:65.39 KB
  • 类别:Scala
  • 作者:文卡特·苏帕拉马尼亚姆
  • 出版:人民邮电出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

编辑推荐

IT行业正拥抱函数式编程,但面向对象编程经验仍然极富价值。Scala编程语言结合了面向对象编程和函数式编程这两种编程范式的原力,而本书将展示如何有效地结合这两者。

自本书首版出版以来, Scala编程语言已经取得了长足的发展, 这一版在此基础上也进行了大幅更新。我们修订了每一章,并添加了3章零6节的新内容来探讨Scala 2.12的新特性。读者将学到如何使用并发集合和Akka的Actor来安全地管理并发,使用值类和改进后的隐式转换来创建富有表现力和可读性的代码,使用字符串插值来从数据构建字符串,创建领域特定语言,以及使用尾调用优化来优化递归。

无论读者是要创建简洁、健壮的单线程应用程序,还是要编写非常具有表现力、线程安全的并发程序,本书都是读者的良师益友。

内容介绍

本书是为想要快速学习或者正在学习Scala编程语言的Java开发者写的,循序渐进地介绍了Scala编程语言的多个方面。 本书共分为4个部分:第一部分详细介绍Scala的一些基础知识,并和Java中的相关概念进行了参照,方便读者快速上手Scala;第二部分进一步介绍Scala的一些中级知识,以及与Java的一些差异点,方便读者编写出更简洁的代码;第三部分介绍在Scala中如何进行并发编程,并务实地介绍Akka套件;第四部分通过实战练习对前面的知识进行综合应用,并系统地介绍如何与Java进行互操作。此外,附录部分还包括一些额外指引。 本书的目标读者是对JVM平台上的语言以及函数式编程感兴趣的程序员。阅读本书不需要读者熟悉Scala编程语言,但需要读者具备Java、面向对象编程的背景知识。因为本书以一种非常务实的方式组织内容,所以读者无法学到Scala的所有内容,但是足以应付日常工作,如果想要更全面地学习Scala以及其背后的一些设计理念,则最好辅以其他图书。

作者介绍

作者简介 文卡特·苏帕拉马尼亚姆(Venkat Subramaniam)博士 Agile Developer公司的创始人,同时也在休斯敦大学兼任教职。他已经培训和指导了数千名软件开发者。他也是多本书籍的(合著)作者,其中包括获得2007年度Jolt“生产力大”(Productivity Award)的《高效程序员的45个习惯:敏捷开发修炼之道》一书。 译者简介 沈达 挖财大数据研发工程师, Scala 爱好者与实践者, 专注于大数据和分布式系统。业余时间是GNU TeXmacs的贡献者。 何品 目前是*的一名知名软件工程师,热爱反应式编程,同时也是Akka和Netty等项目的贡献者,活跃于Scala社区。

目录

  • 第 一部分 小试牛刀 1
  • 第 1章 探索Scala 3
  • 1.1 Scala的特性 3
  • 1.2 以少胜多 4
  • 1.3 函数式编程 8
  • 1.4 小结 11
  • 第 2章 体验Scala 12
  • 2.1 使用REPL 12
  • 2.2 命令行上的Scala 14
  • 2.3 以独立脚本方式运行Scala代码 15
  • 2.3.1 在类Unix系统上以独立脚本方式运行 15
  • 2.3.2 在Windows上以独立脚本方式运行 16
  • 2.3.3 Scala的IDE支持 16
  • 2.4 编译Scala 17
  • 2.5 小结 17
  • 第3章 从Java到Scala 18
  • 3.1 Scala:简洁的Java 18
  • 3.1.1 减少样板代码 18
  • 3.1.2 更多便利特性 19
  • 3.1.3 转向函数式风格 21
  • 3.2 Java原始类型对应的Scala类 21
  • 3.3 元组和多重赋值 22
  • 3.4 灵活的参数和参数值 24
  • 3.4.1 传递变长参数值 24
  • 3.4.2 为参数提供默认值 25
  • 3.4.3 使用命名参数 26
  • 3.5 隐式参数 27
  • 3.6 字符串和多行原始字符串 29
  • 3.7 字符串插值 30
  • 3.8 合理的约定 32
  • 3.9 操作符重载 33
  • 3.10 Scala与Java的差异 35
  • 3.10.1 赋值的结果 36
  • 3.10.2 Scala的== 36
  • 3.10.3 可有可无的分号 37
  • 3.10.4 避免显式return 38
  • 3.11 默认访问修饰符 39
  • 3.11.1 定制访问修饰 39
  • 3.11.2 Scala的protected 40
  • 3.11.3 细粒度的访问控制 41
  • 3.12 小结 43
  • 第4章 处理对象 44
  • 4.1 创建并使用类 44
  • 4.1.1 创建实例 44
  • 4.1.2 创建类 45
  • 4.1.3 定义字段、方法和构造器 46
  • 4.2 遵循JavaBean惯例 49
  • 4.3 类型别名 50
  • 4.4 扩展一个类 51
  • 4.5 参数化类型 52
  • 4.6 单例对象和伴生对象 54
  • 4.6.1 单例对象 54
  • 4.6.2 独立对象和伴生对象 56
  • 4.6.3 Scala中的static 57
  • 4.7 创建枚举类 59
  • 4.8 包对象 60
  • 4.9 小结 63
  • 第5章 善用类型 64
  • 5.1 类型推断 64
  • 5.1.1 简单类型的类型推断 64
  • 5.1.2 针对泛型和集合的类型推断 66
  • 5.2 基础类型 68
  • 5.2.1 Any类型 68
  • 5.2.2 关于Nothing 69
  • 5.2.3 Option类型 70
  • 5.2.4 Either类型 71
  • 5.3 返回值类型推断 73
  • 5.4 参数化类型的型变 75
  • 5.4.1 协变和逆变 75
  • 5.4.2 支持协变 76
  • 5.4.3 支持逆变 77
  • 5.4.4 定制集合的型变 78
  • 5.5 隐式类型转换 78
  • 5.5.1 隐式函数 79
  • 5.5.2 隐式类 81
  • 5.6 值类 83
  • 5.7 使用隐式转换 86
  • 5.8 小结 88
  • *二部分 深入Scala 89
  • 第6章 函数值和闭包 91
  • 6.1 常规函数的局限性 91
  • 6.2 可扩展性与高阶函数 92
  • 6.3 具有多个参数的函数值 93
  • 6.4 柯里化 96
  • 6.5 参数的占位符 97
  • 6.6 参数路由 98
  • 6.7 复用函数值 99
  • 6.8 部分应用函数 101
  • 6.9 闭包 102
  • 6.10 Execute Around Method模式 103
  • 6.11 小结 106
  • 第7章 特质 107
  • 7.1 理解特质 107
  • 7.2 选择性混入 110
  • 7.3 使用特质实现装饰器模式 111
  • 7.4 特质中的方法延迟绑定 113
  • 7.5 小结 115
  • 第8章 集合 116
  • 8.1 常见的Scala集合 116
  • 8.2 使用Set 118
  • 8.3 关联映射 119
  • 8.4 不可变列表 121
  • 8.5 方法名约定 124
  • 8.6 for表达式 126
  • 8.7 小结 128
  • 第9章 模式匹配和正则表达式 129
  • 9.1 模式匹配综述 129
  • 9.1.1 匹配字面量和常量 129
  • 9.1.2 匹配通配符 130
  • 9.1.3 匹配元组和列表 131
  • 9.1.4 匹配类型和守卫 132
  • 9.2 case表达式中的模式变量和常量 133
  • 9.3 使用case类进行模式匹配 135
  • 9.4 提取器和正则表达式 138
  • 9.4.1 使用提取器进行模式匹配 138
  • 9.4.2 正则表达式 141
  • 9.4.3 正则表达式作为提取器 142
  • 9.5 无处不在的下划线字符 143
  • 9.6 小结 144
  • 第 10章 处理异常 145
  • 10.1 Scala中的异常 145
  • 10.2 注意catch的顺序 147
  • 10.3 小结 149
  • 第 11章 递归 150
  • 11.1 一个简单的递归 150
  • 11.2 尾调用优化(TCO) 151
  • 11.2.1 常规递归并无优化 152
  • 11.2.2 用尾调用优化来拯救 152
  • 11.2.3 确保尾调用优化 154
  • 11.3 蹦床调用 155
  • 11.4 小结 158
  • 第三部分 Scala中的并发编程 159
  • 第 12章 惰性求值和并行集合 161
  • 12.1 释放惰性 161
  • 12.2 释放严格集合的惰性 164
  • 12.3 终*惰性流 167
  • 12.4 并行集合 170
  • 12.4.1 从顺序集合入手 171
  • 12.4.2 使用并行集合加速 173
  • 12.5 小结 175
  • 第 13章 使用Actor编程 176
  • 13.1 一个顺序耗时问题 176
  • 13.2 曲折的并发之路 178
  • 13.3 创建Actor 179
  • 13.4 Actor和线程 181
  • 13.5 隔离可变性 182
  • 13.6 使用Actor模型进行并发 186
  • 13.7 使用建议 189
  • 13.8 小结 190
  • 第四部分 Scala实战 191
  • 第 14章 和Java进行互操作 193
  • 14.1 在Scala中使用Scala类 193
  • 14.2 在Scala中使用Java类 195
  • 14.3 在Java中使用Scala方法 197
  • 14.4 在Java中使用特质 198
  • 14.5 在Java中使用单例对象和伴生对象 201
  • 14.6 扩展类 203
  • 14.7 小结 204
  • 第 15章 使用Scala创建应用程序 205
  • 15.1 获取用户输入 205
  • 15.2 读写文件 206
  • 15.3 XML作为一等公民 207
  • 15.4 读写XML 210
  • 15.5 从Web获取股票价格 213
  • 15.6 编写并发的资产净值应用程序 216
  • 15.7 小结 217
  • 第 16章 单元测试 218
  • 16.1 使用JUnit 218
  • 16.2 使用ScalaTest 220
  • 16.3 使用Mockito 221
  • 16.3.1 函数式风格的测试 221
  • 16.3.2 创建一个Mock 223
  • 16.4 小结 227
  • 附录A 安装Scala 228
  • 参考文献 230

资源下载

资源下载地址1:https://box.lenovo.com/l/O0HrCQ

相关资源

网友留言