图书介绍

SCALA程序设计 第2版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

SCALA程序设计 第2版
  • (美)DEAN WAMPLER,ALEX PAYNE著;王渊,陈明译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115416818
  • 出版时间:2016
  • 标注页数:474页
  • 文件大小:57MB
  • 文件页数:499页
  • 主题词:JAVA语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

SCALA程序设计 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 零到六十:Scala简介1

1.1 为什么选择Scala1

1.1.1 富有魅力的Scala2

1.1.2 关于Java 83

1.2 安装Scala3

1.2.1 使用SBT5

1.2.2 执行Scala命令行工具6

1.2.3 在IDE中运行Scala REPL8

1.3 使用Scala8

1.4 并发17

1.5 本章回顾与下一章 提要27

第2章 更简洁,更强大28

2.1 分号28

2.2 变量声明29

2.3 Range31

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:避免使用null52

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 Yielding68

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 混入trait234

9.3 可堆叠的特征238

9.4 构造trait243

9.5 选择类还是trait244

9.6 本章回顾与下一章 提要245

第10章 Scala对象系统(Ⅰ)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对象系统(Ⅱ)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 Builder296

12.3.2 CanBuildFrom297

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类型系统(Ⅰ)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类型系统(Ⅱ)336

15.1 路径相关类型336

15.1.1 C.this337

15.1.2 C.super337

15.1.3 path.x338

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 类型Lambda348

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和Spores383

17.6 反应式编程384

17.7 本章回顾与下一章 提要385

第18章 Scala与大数据386

18.1 大数据简史386

18.2 用Scala改善MapReduce387

18.3 超越MapReduce392

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 DSL404

20.2 内部DSL406

20.3 包含解析组合子的外部DSL410

20.3.1 关于解析组合子410

20.3.2 计算工资单的外部DSL410

20.4 内部DSL与外部DSL:最后的思考413

20.5 本章回顾与下一章 提要413

第21章 Scala工具和库414

21.1 命令行工具414

21.1.1 命令行工具:scalac414

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与Manifest457

24.3 Scala的高级运行时反射API458

24.4 宏461

24.4.1 宏的示例:强制不变性463

24.4.2 关于宏的最后思考466

24.5 本章回顾与下一章提要466

附录A 参考文献468

作者简介473

关于封面473

热门推荐