大小:14.25M
更新时间:23-08-26
系统:Pc
Scala程序设计(第2版)是一本Scala程序设计书籍,由大数据产品架构师万普勒和佩恩两人共同编著,王渊,陈明共同翻译。本书通过大量的代码示例,全面介绍Scala这门针对JVM的编程语言,向读者展示了如何高效地利用Scala语言及其生态系统,同时解释了为何Scala是开发高扩展性、以数据为中心的应用程序的理想语言,能够适合Scala初学者入门,也适合经验丰富的Scala开发者参考。
Scala程序设计(第2版)全面介绍Scala这门针对JVM的编程语言,它集成了现代对象模型、函数式编程和先进类型系统的所有优势。通过大量的代码示例,本书向读者展示了如何高效地利用Scala语言及其生态系统,同时解释了为何Scala是开发高扩展性、以数据为中心的应用程序的理想语言。Scala程序设计(第2版)还介绍了Scala的新特性,新增了模式匹配和高级函数式编程的章节。此外,读者还可以学到Scala的命令行工具、第三方工具、库等。
序 xv 前言 xvii 第 1 章 零到六十:Scala 简介 1 1.1 为什么选择Scala 1 1.1.1 富有魅力的Scala 2 1.1.2 关于Java 8 3 1.2 安装Scala 3 1.2.1 使用SBT 5 1.2.2 执行Scala 命令行工具 6 1.2.3 在IDE中运行Scala REPL 8 1.3 使用Scala 8 1.4 并发 17 1.5 本章回顾与下一章提要 27 第 2 章 更简洁,更强大 28 2.1 分号 28 2.2 变量声明 29 2.3 Range 31 2.4 偏函数 32 2.5 方法声明 33 2.5.1 方法默认值和命名参数列表 33 2.5.2 方法具有多个参数列表 34 2.5.3 Future 简介 35 2.5.4 嵌套方法的定义与递归 38 2.6 推断类型信息 40 2.7 保留字 44 2.8 字面量 46 2.8.1 整数字面量 46 2.8.2 浮点数字面量 47 2.8.3 布尔型字面量 48 2.8.4 字符字面量 48 2.8.5 字符串字面量 48 2.8.6 符号字面量 50 2.8.7 函数字面量 50 2.8.8 元组字面量 50 2.9 Option、Some和None:避免使用null 52 2.10 封闭类的继承 53 2.11 用文件和名空间组织代码 54 2.12 导入类型及其成员 55 2.12.1 导入是相对的 56 2.12.2 包对象 57 2.13 抽象类型与参数化类型 57 2.14 本章回顾与下一章提要 59 第 3 章 要点详解 60 3.1 操作符重载 ? 60 3.2 无参数方法 63 3.3 优先级规则 64 3.4 领域特定语言 65 3.5 Scala中的if语句 66 3.6 Scala中的for推导式 67 3.6.1 for循环 67 3.6.2 生成器表达式 67 3.6.3 保护式:筛选元素 67 3.6.4 Yielding 68 3.6.5 扩展作用域与值定义 69 3.7 其他循环结构 70 3.7.1 Scala的while循环 71 3.7.2 Scala中的do-while循环 71 3.8 条件操作符 71 3.9 使用try、catch和final子句 72 3.10 名字调用和值调用 75 3.11 惰性赋值 78 3.12 枚举 79 3.13 可插入字符串 81 3.14 Trait:Scala语言的接口和“混入” 83 3.15 本章回顾与下一章提要 85 第 4 章 模式匹配 86 4.1 简单匹配 86 4.2 match中的值、变量和类型 87 4.3 序列的匹配 90 4.4 元组的匹配 94 4.5 case中的guard语句 94 4.6 case类的匹配 95 4.6.1 unapply方法 96 4.6.2 unapplySeq方法 100 4.7 可变参数列表的匹配 101 4.8 正则表达式的匹配 103 4.9 再谈case语句的变量绑定 104 4.10 再谈类型匹配 104 4.11 封闭继承层级与全覆盖匹配 105 4.12 模式匹配的其他用法 107 4.13 总结关于模式匹配的评价 111 4.14 本章回顾与下一章提要 111 第 5 章 隐式详解 112 5.1 隐式参数 112 5.2 隐式参数适用的场景 115 5.2.1 执行上下文 115 5.2.2 功能控制 115 5.2.3 限定可用实例 116 5.2.4 隐式证据 120 5.2.5 绕开类型擦除带来的限制 122 5.2.6 改善报错信息 124 5.2.7 虚类型 124 5.2.8 隐式参数遵循的规则 127 5.3 隐式转换 128 5.3.1 构建独有的字符串插入器 132 5.3.2 表达式问题 134 5.4 类型类模式 135 5.5 隐式所导致的技术问题 137 5.6 隐式解析规则 139 5.7 Scala内置的各种隐式 139 5.8 合理使用隐式 146 5.9 本章回顾与下一章提要 146 第 6 章 Scala函数式编程 147 6.1 什么是函数式编程 148 6.1.1 数学中的函数 148 6.1.2 不可变变量 149 6.2 Scala中的函数式编程 151 6.2.1 匿名函数、Lambda与闭包 152 6.2.2 内部与外部的纯粹性 154 6.3 递归 154 6.4 尾部调用和尾部调用优化 155 6.5 偏应用函数与偏函数 157 6.6 Curry化与函数的其他转换 158 6.7 函数式编程的数据结构 162 6.7.1 序列 162 6.7.2 映射表 166 6.7.3 集合 168 6.8 遍历、映射、过滤、折叠与归约 168 6.8.1 遍历 169 6.8.2 映射 170 6.8.3 扁平映射 172 6.8.4 过滤 173 6.8.5 折叠与归约 174 6.9 向左遍历与向右遍历 178 6.10 组合器:软件最佳组件抽象 183 6.11 关于复制 186 6.12 本章回顾与下一章提要 188 第 7 章 深入学习for推导式 189 7.1 内容回顾:for推导式组成元素 189 7.2 for推导式:内部机制 192 7.3 for推导式的转化规则 194 7.4 Option以及其他的一些容器类型 197 7.4.1 Option容器 197 7.4.2 Either:Option类型的逻辑扩展 200 7.4.3 Try类型 205 7.4.4 Scalaz提供的Validation类 206 7.5 本章回顾与下一章提要 209 第 8 章 Scala面向对象编程 210 8.1 类与对象初步 211 8.2 引用与值类型 213 8.3 价值类 214 8.4 父类 217 8.5 Scala的构造器 217 8.6 类的字段 221 8.6.1 统一访问原则 223 8.6.2 一元方法 224 8.7 验证输入 224 8.8 调用父类构造器(与良好的面向对象设计) 226 8.9 嵌套类型 230 8.10 本章回顾与下一章提要 232 第 9 章 特征 233 9.1 Java 8中的接口 233 9.2 混入trait 234 9.3 可堆叠的特征 238 9.4 构造trait 243 9.5 选择类还是trait 244 9.6 本章回顾与下一章提要 245 第 10 章 Scala对象系统(I) 246 10.1 参数化类型:继承转化 246 10.1.1 Hood下的函数 247 10.1.2 可变类型的变异 250 10.1.3 Scala和Java中的变异 252 10.2 Scala的类型层次结构 253 10.3 闲话Nothing(以及Null) 254 10.4 Product、case类和元组 258 10.5 Predef对象 260 10.5.1 隐式转换 260 10.5.2 类型定义 262 10.5.3 条件检查方法 263 10.5.4 输入输出方法 263 10.5.5 杂项方法 265 10.6 对象的相等 265 10.6.1 equals方法 266 10.6.2 ==和!=方法 266 10.6.3 eq和ne方法 267 10.6.4 数组相等和sameElements方法 267 10.7 本章回顾与下一章提要 268 第 11 章 Scala对象系统(II) 269 11.1 覆写类成员和trait成员 269 11.2 尝试覆写final声明 272 11.3 覆写抽象方法和具体方法 272 11.4 覆写抽象字段和具体字段 274 11.5 覆写抽象类型 280 11.6 无须区分访问方法和字段:统一访问原则 280 11.7 对象层次结构的线性化算法 282 11.8 本章回顾与下一章提要 287 第 12 章 Scala集合库 288 12.1 通用、可变、不可变、并发以及并行集合 288 12.1.1 scala.collection包 289 12.1.2 collection.concurrent包 290 12.1.3 collection.convert包 291 12.1.4 collection.generic包 291 12.1.5 collection.immutable包 291 12.1.6 scala.collection.mutable包 292 12.1.7 scala.collection.parallel包 294 12.2 选择集合 295 12.3 集合库的设计惯例 296 12.3.1 Builder 296 12.3.2 CanBuildFrom 297 12.3.3 Like特征 298 12.4 值类型的特化 298 12.5 本章回顾与下一章提要 300 第 13 章 可见性规则 301 13.1 默认可见性:公有可见性 301 13.2 可见性关键字 302 13.3 Public可见性 303 13.4 Protected可见性 304 13.5 Private可见性 305 13.6 作用域内私有和作用域内受保护可见性 306 13.7 对可见性的想法 312 13.8 本章回顾与下一章提要 313 第 14 章 Scala类型系统(I) 314 14.1 参数化类型 315 14.1.1 变异标记 315 14.1.2 类型构造器 315 14.1.3 类型参数的名称 315 14.2 类型边界 315 14.2.1 类型边界上限 316 14.2.2 类型边界下限 316 14.3 上下文边界 320 14.4 视图边界 320 14.5 理解抽象类型 322 14.6 自类型标记 325 14.7 结构化类型 329 14.8 复合类型 332 14.9 存在类型 334 14.10 本章回顾与下一章提要 335 第 15 章 Scala 类型系统(II) 336 15.1 路径相关类型 336 15.1.1 C.this 337 15.1.2 C.super 337 15.1.3 path.x 338 15.2 依赖方法类型 339 15.3 类型投影 340 15.4 值的类型 343 15.4.1 元组类型 343 15.4.2 函数类型 343 15.4.3 中缀类型 343 15.5 Higher-Kinded类型 344 15.6 类型Lambda 348 15.7 自递归类型:F-Bounded 多态 350 15.8 本章回顾与下一章提要 351 第 16 章 高级函数式编程 352 16.1 代数数据类型 352 16.1.1 加法类型与乘法类型 352 16.1.2 代数数据类型的属性 354 16.1.3 代数数据类型的最后思考 355 16.2 范畴理论 355 16.2.1 关于范畴 356 16.2.2 Functor范畴 356 16.2.3 Monad范畴 360 16.2.4 Monad的重要性 362 16.3 本章回顾与下一章提要 363 第 17 章 并发工具 365 17.1 scala.sys.process包 365 17.2 Future类型 367 17.3 利用Actor模型构造稳固且可扩展的并发应用 371 17.4 Akka:为Scala设计的Actor系统 372 17.5 Pickling和Spores 383 17.6 反应式编程 384 17.7 本章回顾与下一章提要 385 第 18 章 Scala与大数据 386 18.1 大数据简史 386 18.2 用Scala改善MapReduce 387 18.3 超越MapReduce 392 18.4 数学范畴 393 18.5 Scala数据工具列表 394 18.6 本章回顾与下一章提要 394 第 19 章 Scala动态调用 396 19.1 一个较为激进的示例:Ruby on Rails框架中的ActiveRecord库 396 19.2 使用动态特征实现Scala中的动态调用 397 19.3 关于DSL的一些思考 402 19.4 本章回顾与下一章提要 402 第 20 章 Scala的领域特定语言 403 20.1 DSL 示例:Scala中XML和JSON DSL 404 20.2 内部DSL 406 20.3 包含解析组合子的外部DSL 410 20.3.1 关于解析组合子 410 20.3.2 计算工资单的外部DSL 410 20.4 内部DSL与外部DSL:最后的思考 413 20.5 本章回顾与下一章提要 413 第 21 章 Scala工具和库 414 21.1 命令行工具 414 21.1.1 命令行工具:scalac 414 21.1.2 Scala命令行工具 418 21.1.3 scalap和javap命令行工具 421 21.1.4 scaladoc命令行工具 422 21.1.5 fsc命令行工具 422 21.2 构建工具 422 21.2.1 SBT:Scala标准构建工具 423 21.2.2 其他构建工具 425 21.3 与IDE或文本编辑器集成 425 21.4 在Scala中应用测试驱动开发 426 21.5 第三方库 427 21.6 本章回顾与下一章提要 429 第 22 章 与Java的互操作 430 22.1 在Scala代码中使用 Java 名称 430 22.2 Java泛型与Scala泛型 430 22.3 JavaBean的性质 432 22.4 AnyVal类型与Java原生类型 433 22.5 Java代码中的Scala名称 433 22.6 本章回顾与下一章提要 434 第 23 章 应用程序设计 435 23.1 回顾之前的内容 435 23.2 注解 437 23.3 Trait即模块 441 23.4 设计模式 442 23.4.1 构造型模式 443 23.4.2 结构型模式 443 23.4.3 行为型模式 444 23.5 契约式设计带来更好的设计 446 23.6 帕特农神庙架构 448 23.7 本章回顾与下一章提要 453 第 24 章 元编程:宏与反射 454 24.1 用于理解类型的工具 455 24.2 运行时反射 455 24.2.1 类型反射 455 24.2.2 ClassTag、TypeTag与Manifest 457 24.3 Scala的高级运行时反射API 458 24.4 宏 461 24.4.1 宏的示例:强制不变性 463 24.4.2 关于宏的最后思考 466 24.5 本章回顾与下一章提要 466 附录 A 参考文献 468 作者简介 473 关于封面 473
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必下载pdf阅读器
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读试读
应用信息
同类热门
类似软件
Scala程序设计第二版15.83M445人在用想要学习Scala程序设计看哪方面的书籍好呢?小编推荐您看看这本Scala程序设计第二版pdf格式的电子书,这本书里主要讲解了Scala的函数式风格、自适应类型、闭包、XML处理、模式匹配和并发编程等内容。本书既适合Scala初学者入门,也适合经验丰富的
查看
c++程序设计语言(第4部分:标准库)68.02M1347人在用 c++程序设计语言(第4部分:标准库)是C++之父Bjarne Stroustrup编写的全新作品,也是通常用户所说的c++程序设计语言第四版,是无可替代的C++领域经典的参考书,详细的介绍C++11的各项新特性、功能等。全书知识结构完整,对C++
查看
c++程序设计语言(第1-3部分)(原书第4版)157.95M1541人在用 c++程序设计语言(第1-3部分)(原书第4版)是C++领域的一本经典的参考书,由C++语言之父Bjarne Stroustrup编著,全书知识结构完整,对C++语言介绍非常全面,作者按照基本功能、抽象机制、标准库的递进层次组织全书,由浅入深地把C
查看热门标签
网友评论0人参与,0条评论
最新排行
mysql入门很简单169.11M mysql入门很简单是一本MySql数据库的入门书籍,获得大量好评,5次印刷,畅销15000册,由黄缙华编著。本书以初学者的角度出发,由浅入深,循序渐进地介绍了mysql数据库应用与开发的相关知识,包括MySQL数据库基础,Windows平台下安装
查看
04cj013变形缝建筑构造(三)4.41M 04cj013变形缝建筑构造(三)是中国建筑标准设计研究院出版的一款实用图集,统一编号:GJCT-003,实行日期:2004年1月1日,是专为建筑设计选用变形缝装置和安装构造而编制的国家建筑标准设计参考图集,可以适用于一般工业与民用建筑,可用于楼地
查看
第一行代码android pdf高清扫描版7.68M郭霖著 第一行代码android第一版pdf下是一本android开发入门实用书籍,由从事android开发多年的工程师郭霖编著,作者将自己丰富的项目实战经验,以浅显易懂的语言和图文并茂的实例融入本书中,涵盖android系统架构、四大组件、数据存储、多媒
查看
设计模式.NET并行编程pdf扫描版19.79M 设计模式.NET并行编程pdf扫描版是一本.NET并行编程教学书籍,由美国程序员坎贝尔(Colin Campbell)编著。本书内容丰富翔实,全书几乎涵盖了并行编程的各个方面,详细的阐述了并行计算理论的基础原理和架构,同时借助了任务并行库(TPL)
查看
oracle11g从入门到精通82.36M钱慎一张素智pdf扫描版 oracle11g从入门到精通是一本Oracle入门书籍,由钱慎一和张素智两人共同编著,本书内容丰富,翔实。Oracle数据库系统是数据库领域最优秀的数据库之一,本书以Oracle最新版本Oracle 11g为蓝本,系统地讲述了Oracle数据库的
查看
OraclePL/SQL实例精解(原书第4版)71.86M罗森维格pdf扫描版 OraclePL/SQL实例精解(原书第4版)是一本OraclePL和MYSQL数据库实例精解书籍,由美国程序员罗森维格编著。本书是一本集中式的解决方案范例教程,使用真实场景的试验,大量范例,练习来介绍所需的所有Oracle PL/SQL技能。全书
查看
疯狂ajax讲义第三版387.48M李刚pdf扫描版 疯狂ajax讲义第三版是一本介绍Ajax前端开发的图书,也是企业应用前端开发实战指南,由疯狂Java实训营创始人李刚编著。全书名称叫做:疯狂ajax讲义:jQuery/Ext JS/Prototype/DWR企业应用前端开发实战第3版。该书全面、细
查看
新手学DIV+CSS商业网站布局从入门到精通(实战案例版)314.96M朱印宏pdf扫描版 新手学DIV+CSS商业网站布局从入门到精通(实战案例版)是一本讲解商业网站的布局和美化的参考教学书籍,由朱印宏编著,中国铁道出版社出版。全书基于Dreamweaver和Photoshop常用软件,作者按照由浅到深的写作思路并且结合了多个典型网站实
查看
计算机组成与设计硬件软件接口第五版149.19Mpdf扫描完整版 计算机组成与设计硬件软件接口第五版,简称为计算机组成与设计第五版,是一本介绍计算机体系结构的教材,由美戴维A.帕特森,约翰L.亨尼斯编著,王党辉,康继昌,安建峰等翻译,机械工业出版社出版。全书非常详细的介绍了软件和硬件之间的关系,并且还提供了丰富的
查看
visual basic从入门到精通第2版84.6MPDF中文版visual basic从入门到精通第2版是一款pdf中文版的高清电子书籍,全书以基础知识为引子,逐步讲解了visual basic的核心技术,高级应用以及项目实战,总共235个应用实例,44个典型应用,1个项目案例,内容极为详尽,实例典型丰富。另外软件
查看