万本电子书0元读

万本电子书0元读

顶部广告

Scala编程(第3版)电子书

《Scala编程(第3版)》是一份Scala编程语言的教程书。书中包含有很多编程例子,这些例子简便易懂易学,你如果认真读下去此书,本书将以一步一个脚印的方式引导你顺利地获得Scala软件发的能力。通过阅读此书,你能够获得你所需的,并成为一个多产的Scala程序员。本书还可作为一份语言参考书。Scala语言有一个正式的定义,但是语言的定义是以可读性为代价要求精确性的文档。尽管本书并未涵盖Scala的所有细节,但它在你更好地掌控Scala编程之前,作为一本平易近人的语言参考书已足够全面。

售       价:¥

纸质售价:¥113.70购买纸书

513人正在读 | 0人评论 6.2

作       者:高宇翔

出  版  社:电子工业出版社

出版时间:2017-11-01

字       数:38.7万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(1条)
  • 读书简介
  • 目录
  • 累计评论(1条)
本书由直参与Scala发的一线人员编写,因而对原理的解读和应用的把握更加值得信赖。本书面向具有一定编程经验的发者,目标是让读者能够全面了解和掌握Scala编程语言的核心特性,并能够深理解Scala这门语言在设计取舍背后的动因。即便是不直使用Scala或从事一线编程工作的读者,也能从本书学到大量关于函数式和面向对象的编程概念和技巧。<br/>【推荐语】<br/>《Scala编程(第3版)》是一份Scala编程语言的教程书。书中包含有很多编程例子,这些例子简便易懂易学,你如果认真读下去此书,本书将以一步一个脚印的方式引导你顺利地获得Scala软件发的能力。通过阅读此书,你能够获得你所需的,并成为一个多产的Scala程序员。本书还可作为一份语言参考书。Scala语言有一个正式的定义,但是语言的定义是以可读性为代价要求精确性的文档。尽管本书并未涵盖Scala的所有细节,但它在你更好地掌控Scala编程之前,作为一本平易近人的语言参考书已足够全面。<br/>【作者】<br/>Martin Odersky 是Scala 编程语言的缔造者。他是瑞士洛桑理工学院(EPFL)的教授,同时也是Typesafe, Inc.(已更名为Lightbend)的创始人。他的研究方向是编程语言和系统,更具体地说,就是如何将面向对象和函数式编程风格有机地结合在一起。自2001 年起,他的主要精力集中在设计、实现和改Scala 上。在此之前,他作为Java 泛型的合作设计者参与了Java 编程语言的发,同时也是当前javac 参考实现的作者。他还是ACM 院士。Lex Spoon 是Semmle Ltd. 的一名软件工程师。他在EPFL 作为博士后围绕着Scala 展了两年的工作。他拥有Georgia Tech 的博士学位,在那里他的主攻方向是动态编程语言的静态分析。除Scala 外,他还帮助发了各类编程语言,包括动态语言Smalltalk、科学计算语言X10,以及支撑Semmle 的逻辑编程语言。他和他的夫人一起生活在Atlanta,他们有两只猫和一只吉娃娃。Bill Venners 是Artima Inc. 的主席,Artima 发者网站(ww.artima.com)的发行人,以及Escalate Software, LLC 的联合创始人。他著有《Inside theJava Virtual Machine》,这是一本面向程序员讲解Java 平台架构和内部实现原理的书。他在《JavaWorld》杂志上的专栏很受欢迎,主题涵盖Java 内部实现、面向对象的设计和Jini。Bill 从Jini 社区创立之初便十分活跃,领导了Jini 社区的ServiceUI 项目,其API 成为Jini 服务事实上的UI 标准。他还是ScalaTest 的主要发者和设计者,一个面向Scala 和Java 发者的源测试工具。 高宇翔,资深软件发工程师和系统架构师,同时也是Scala在国内的早期布道者和实践者,曾译有《快学Scala(第2版)》、《快学Scala》(第1版)和《Scala编程》(第1版)等专业书籍。<br/>
目录展开

对早前版本《Scala编程》的赞许

推荐序

译者序

致谢

引言

第1章 一门可伸缩的语言

1.1 一门按需伸缩的语言

1.2 是什么让Scala能屈能伸?

1.3 为什么要用Scala?

1.4 Scala寻根

1.5 结语

第2章 Scala入门

第1步 使用Scala解释器

第2步 定义变量

第3步 定义函数

第4步 编写Scala脚本

第5步 用while做循环;用if做判断

第6步 用foreach和for遍历

结语

第3章 Scala入门(续)

第7步 用类型参数化数组

第8步 使用列表

第9步 使用元组

第10步 使用集和映射

第11步 识别函数式编程风格

第12步 从文件读取文本行

结语

第4章 类和对象

4.1 类、字段和方法

4.2 分号推断

4.3 单例对象

4.4 Scala应用程序

4.5 App特质

4.6 结语

第5章 基础类型和操作

5.1 一些基础类型

5.2 字面量

5.3 字符串插值

5.4 操作符即方法

5.5 算术操作

5.6 关系和逻辑操作

5.7 位运算操作

5.8 对象相等性

5.9 操作符优先级和结合性

5.10 富包装类

5.11 结语

第6章 函数式对象

6.1 Rational类的规格定义

6.2 构建Rational

6.3 重新实现toString方法

6.4 检查前置条件

6.5 添加字段

6.6 自引用

6.7 辅助构造方法

6.8 私有字段和方法

6.9 定义操作符

6.10 Scala中的标识符

6.11 方法重载

6.12 隐式转换

6.13 注意事项

6.14 结语

第7章 内建的控制结构

7.1 if表达式

7.2 while循环

7.3 for表达式

7.4 用try表达式实现异常处理

7.5 match表达式

7.6 没有break和continue的日子

7.7 变量作用域

7.8 对指令式代码进行重构

7.9 结语

第8章 函数和闭包

8.1 方法

8.2 局部函数

8.3 一等函数

8.4 函数字面量的简写形式

8.5 占位符语法

8.6 部分应用的函数

8.7 闭包

8.8 特殊的函数调用形式

8.9 尾递归

8.10 结语

第9章 控制抽象

9.1 减少代码重复

9.2 简化调用方代码

9.3 柯里化

9.4 编写新的控制结构

9.5 传名参数

9.6 结语

第10章 组合和继承

10.1 一个二维的布局类库

10.2 抽象类

10.3 定义无参方法

10.4 扩展类

10.5 重写方法和字段

10.6 定义参数化字段

10.7 调用超类构造方法

10.8 使用override修饰符

10.9 多态和动态绑定

10.10 声明final成员

10.11 使用组合和继承

10.12 实现above、beside和toString

10.13 定义工厂对象

10.14 增高和增宽

10.15 放在一起

10.16 结语

第11章 Scala的继承关系

11.1 Scala的类继承关系

11.2 基本类型的实现机制

11.3 底类型(bottom types)

11.4 定义自己的值类型

11.5 结语

第12章 特质

12.1 特质如何工作

12.2 瘦接口和富接口

12.3 示例:矩形对象

12.4 Ordered特质

12.5 作为可叠加修改的特质

12.6 为什么不用多重继承?

12.7 要特质还是不要特质?

12.8 结语

第13章 包和引入

13.1 将代码放进包里

13.2 对相关代码的精简访问

13.3 引入

13.4 隐式引入

13.5 访问修饰符

13.6 包对象

13.7 结语

第14章 断言和测试

14.1 断言

14.2 用Scala写测试

14.3 翔实的失败报告

14.4 作为规格说明的测试

14.5 基于性质的测试

14.6 组织和运行测试

14.7 结语

第15章 样例类和模式匹配

15.1 一个简单的例子

15.2 模式的种类

15.3 模式守卫

15.4 模式重叠

15.5 密封类

15.6 Option类型

15.7 到处都是模式

15.8 一个复杂的例子

15.9 结语

第16章 使用列表

16.1 List字面量

16.2 List类型

16.3 构建列表

16.4 列表的基本操作

16.5 列表模式

16.6 List类的初阶方法

16.7 List类的高阶方法

16.8 List对象的方法

16.9 同时处理多个列表

16.10 理解Scala的类型推断算法

16.11 结语

第17章 使用其他集合类

17.1 序列

17.2 集和映射

17.3 在可变和不可变集合类之间选择

17.4 初始化集合

17.5 元组

17.6 结语

第18章 可变对象

18.1 什么样的对象是可变的?

18.2 可被重新赋值的变量和属性

18.3 案例分析:离散事件模拟

18.4 用于描述数字电路的语言

18.5 Simulation API

18.6 电路模拟

18.7 结语

第19章 类型参数化

19.1 函数式队列

19.2 信息隐藏

19.3 型变注解

19.4 检查型变注解

19.5 下界

19.6 逆变

19.7 对象私有数据

19.8 上界

19.9 结语

第20章 抽象成员

20.1 抽象成员概览

20.2 类型成员

20.3 抽象的val

20.4 抽象的var

20.5 初始化抽象的val

20.6 抽象类型

20.7 路径依赖类型

20.8 改良类型

20.9 枚举

20.10 案例分析:货币

20.11 结语

第21章 隐式转换和隐式参数

21.1 隐式转换

21.2 隐式规则

21.3 隐式转换到一个预期的类型

21.4 转换接收端

21.5 隐式参数

21.6 上下文界定

21.7 当有多个转换可选时

21.8 调试

21.9 结语

第22章 实现列表

22.1 List类的原理

22.2 ListBuffer类

22.3 List类的实践

22.4 外部可见的函数式

22.5 结语

第23章 重访for表达式

23.1 for表达式

23.2 N皇后问题

23.3 用for推导式进行查询

23.4 用for推导式进行翻译

23.5 反过来

23.6 泛化for表达式

23.7 结语

第24章 深入集合类

24.1 可变和不可变集合

24.2 集合的一致性

24.3 Traversable特质

24.4 Iterable特质

24.5 序列型特质Seq、IndexedSeq和LinearSeq

24.6 集

24.7 映射

24.8 具体的不可变集合类

24.9 具体的可变集合类

24.10 数组

24.11 字符串

24.12 性能特征

24.13 相等性

24.14 视图

24.15 迭代器

24.16 从头创建集合

24.17 Java和Scala集合互转

24.18 结语

第25章 Scala集合架构

25.1 集合构建器

25.2 抽取公共操作

25.3 集成新的集合

25.4 结语

第26章 提取器

26.1 示例:提取电子邮箱地址

26.2 提取器

26.3 提取0或1个变量的模式

26.4 提取可变长度参数的模式

26.5 提取器和序列模式

26.6 提取器和样例类的对比

26.7 正则表达式

26.8 结语

第27章 注解

27.1 为什么要有注解?

27.2 注解的语法

27.3 标准注解

27.4 结语

第28章 使用XML

28.1 半结构化数据

28.2 XML概览

28.3 XML字面量

28.4 序列化

28.5 拆解XML

28.6 反序列化

28.7 加载和保存

28.8 对XML做模式匹配

28.9 结语

第29章 用对象实现模块化编程

29.1 问题描述

29.2 食谱应用程序

29.3 抽象

29.4 将模块拆分成特质

29.5 运行时链接

29.6 跟踪模块实例

29.7 结语

第30章 对象相等性

30.1 Scala中的相等性

30.2 编写相等性方法

30.3 为参数化类型定义相等性

30.4 如何编写equals和hashCode方法

30.5 结语

第31章 结合Scala和Java

31.1 从Java使用Scala

31.2 注解

31.3 通配类型

31.4 同时编译Scala和Java

31.5 基于Scala 2.12特性的Java 8集成

31.6 结语

第32章 Future和并发编程

32.1 天堂里的烦恼

32.2 异步执行和Try

32.3 使用Future

32.4 测试Future

32.5 结语

第33章 组合子解析

33.1 示例:算术表达式

33.2 运行你的解析器

33.3 基本的正则表达式解析器

33.4 另一个示例:JSON

33.5 解析器输出

33.6 实现组合子解析器

33.7 字符串字面量和正则表达式

33.8 词法分析和解析

33.9 错误报告

33.10 回溯和LL(1)

33.11 结语

第34章 GUI编程

34.1 第一个Swing应用程序

34.2 面板和布局

34.3 处理事件

34.4 示例:摄氏/华氏转换器

34.5 结语

第35章 SCells试算表

35.1 可视化框架

35.2 将数据录入和显示分开

35.3 公式

35.4 解析公式

35.5 求值

35.6 操作类库

35.7 变更通知

35.8 结语

附录A Unix和Windows环境的Scala脚本

术语表

累计评论(1条) 2个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部