万本电子书0元读

万本电子书0元读

顶部广告

Scala编程实战(原书第2版)电子书

在构建面向对象、函数式和并发的应用程序时,使用Scala既可以节省时间又能省去很多麻烦。本书包含250多个常见的Scala编程问题和1000多个基于真实场景的代码示例,可以帮助你解决在使用Scala 3及其流行库时遇到的常见问题。 Scala改变了编程思维。无论你是从事Web、大数据还是分布式应用程序方面的工作,无论你是有经验的Scala发人员还是刚刚学习使用这种JVM语言的程序员,本书都将让你受益良多。Alvin Alexander根据他在基于组件的、支持并发和分布式的高可伸缩应用程序中使用Scala的经验,提供了很多实用的解决方案。

售       价:¥

纸质售价:¥149.20购买纸书

9人正在读 | 0人评论 6.8

作       者:(美)阿尔文·亚历山大(Alvin Alexander)

出  版  社:机械工业出版社

出版时间:2023-09-07

字       数:33.3万

所属分类: 科技 > 计算机/网络 > 计算机理论与教程

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

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书是一本涉及Scala 3基础知识与实际应用的实践指南。本书基于Scala 3,不仅详细介绍了Scala有关的所有基础知识,包括门基础、功能、语言本身、概念、工具、库、框架、类型、集合、类、方法、函数式编程技术等,还通过实际的代码示例展示了Scala 3的语言优势和特,并以问答形式提供了许多解决方案,包含250多个常见的Scala编程问题和1000多个基于真实场景的代码示例,覆盖了使用Scala 3及其流行库时遇到的常见问题。本书适合所有的Scala发人员以及初级类库设计师阅读。<br/>【推荐语】<br/>在构建面向对象、函数式和并发的应用程序时,使用Scala既可以节省时间又能省去很多麻烦。本书包含250多个常见的Scala编程问题和1000多个基于真实场景的代码示例,可以帮助你解决在使用Scala 3及其流行库时遇到的常见问题。 Scala改变了编程思维。无论你是从事Web、大数据还是分布式应用程序方面的工作,无论你是有经验的Scala发人员还是刚刚学习使用这种JVM语言的程序员,本书都将让你受益良多。Alvin Alexander根据他在基于组件的、支持并发和分布式的高可伸缩应用程序中使用Scala的经验,提供了很多实用的解决方案。<br/>
目录展开

O'Reilly Media,Inc.介绍

译者序

前言

第1章 命令行

1.1 初识Scala REPL

1.2 在REPL中使用源代码和JAR文件

1.3 初识Ammonite REPL

1.4 scalac和scala命令

1.5 反编译Scala代码

1.6 运行JAR文件

第2章 字符串

2.1 字符串的相等性判断

2.2 多行字符串的创建

2.3 字符串的分割

2.4 字符串的变量代入

2.5 字符串输出的格式化

2.6 字符串的逐个字符处理

2.7 字符串的模式查找

2.8 字符串的模式替换

2.9 使用模式匹配提取字符串

2.10 访问字符串中的单个字符

2.11 自定义字符串插值器

2.12 创建随机字符串

第3章 数值和日期

3.1 将字符串解析为数值

3.2 数值类型间的转换

3.3 覆盖默认的数值类型

3.4 ++和--的替代方案

3.5 浮点数的比较

3.6 处理大数值

3.7 生成随机数

3.8 数值和货币的格式化

3.9 创建新的日期和时间实例

3.10 计算日期的差值

3.11 日期的格式化

3.12 将字符串解析为日期

第4章 控制结构

4.1 for循环

4.2 多重for循环

4.3 for循环中的守卫语句

4.4 集合中的for/yield

4.5 Scala中的“三元操作符”

4.6 match表达式

4.7 case的多条件匹配

4.8 将match表达式的结果分配给变量

4.9 访问match表达式的默认值

4.10 match表达式与模式匹配

4.11 match表达式与枚举和样例类

4.12 case中的守卫语句

4.13 match表达式与isInstanceOf

4.14 match表达式与List

4.15 用try/catch匹配一个或多个异常

4.16 try/catch/finally

4.17 创建自定义控制结构

第5章 类

5.1 挑选合适的领域建模工具

5.2 创建主构造函数

5.3 控制构造函数字段的可见性

5.4 定义辅助构造函数

5.5 定义私有的主构造函数

5.6 构造函数参数的默认值

5.7 类继承时的构造函数

5.8 调用父类的构造函数

5.9 定义equals方法(对象相等性)

5.10 阻止生成访问方法和修改方法

5.11 覆盖默认的访问方法和修改方法

5.12 将代码块或函数赋值给惰性字段

5.13 设置未初始化的var字段

5.14 样例类产生的模板代码

5.15 定义样例类的辅助构造函数

第6章 特质和枚举

6.1 特质的接口用法

6.2 定义特质的抽象字段

6.3 特质的抽象类用法

6.4 特质的混入用法

6.5 多特质同名方法处理与super关键字

6.6 限制特质的拓展(仅支持特定类型的子类)

6.7 限制特质的拓展(仅支持具有特定方法的类型)

6.8 限制特质的拓展(仅支持特定的类)

6.9 使用参数化特质

6.10 特质的构造参数

6.11 特质与模块

6.12 用枚举创建命名值的集

6.13 用枚举建模ADT

第7章 对象

7.1 对象的强制转换

7.2 用classOf方法传递Class类型

7.3 用object创建单例对象

7.4 用伴生对象创建静态成员

7.5 用apply方法作为构造函数

7.6 用apply方法实现静态工厂

7.7 将特质具体化成对象

7.8 unapply方法与模式匹配

第8章 方法

8.1 控制方法的作用域

8.2 调用父类或特质的方法

8.3 调用方法时使用参数名称

8.4 设置参数的默认值

8.5 可变参数

8.6 无括号的方法调用

8.7 声明异常

8.8 支持链式调用风格

8.9 扩展方法

第9章 包和导入

9.1 大括号风格的包语法

9.2 导入一个或多个成员

9.3 导入并重命名成员

9.4 导入时隐藏类

9.5 导入静态成员

9.6 无处不在的导入语句

9.7 导入given

第10章 函数式编程

10.1 使用函数字面量(匿名函数)

10.2 将函数作为变量传递

10.3 将函数作为方法的参数

10.4 声明高阶函数

10.5 使用部分应用函数

10.6 创建返回函数的方法

10.7 创建偏函数

10.8 实现函数式错误处理

10.9 实际案例:在算法中传递函数

10.10 实际案例:函数式领域建模

第11章 集合:介绍

11.1 选择合适的集合类

11.2 集合的性能对比

11.3 不可变集合与可变变量

11.4 创建惰性视图

第12章 集合:序列类

12.1 Vector

12.2 创建并填充List

12.3 List的添加操作

12.4 List和ListBuffer的删除操作

12.5 使用ListBuffer创建可变列表

12.6 LazyList

12.7 ArrayBuffer

12.8 Array和ArrayBuffer的删除操作

12.9 创建并更新数组

12.10 创建多维数组

12.11 数组排序

第13章 集合:常见的序列方法

13.1 选择合适的集合方法

13.2 foreach方法

13.3 迭代器

13.4 zipWithIndex和zip方法

13.5 map方法

13.6 flatten方法

13.7 filter方法

13.8 从集合中提取元素序列

13.9 序列的拆分

13.10 reduce和fold方法

13.11 序列的去重

13.12 序列的合并

13.13 序列的随机化

13.14 集合排序

13.15 mkString和addString方法

第14章 集合:映射

14.1 创建和使用映射

14.2 选择合适的映射

14.3 不可变映射的添加、更新和删除操作

14.4 可变映射的添加、更新和删除操作

14.5 安全访问映射值

14.6 测试映射中键或值的存在

14.7 从映射中获取所有的键或值

14.8 寻找映射中最大和最小的键或值

14.9 映射的遍历

14.10 根据键或值对映射排序

14.11 映射的过滤

第15章 集合:元组、范围、集、栈和队列

15.1 元组与异构列表

15.2 创建范围

15.3 创建集并向其添加元素

15.4 集的删除操作

15.5 有序集

15.6 创建和使用栈

15.7 创建和使用队列

第16章 文件和进程

16.1 文本文件的读取

16.2 文本文件的写入

16.3 二进制文件的读写

16.4 将字符串伪装为文件

16.5 对象和文件间的序列化/反序列化

16.6 目录的遍历

16.7 执行外部命令

16.8 执行外部命令并读取标准输出

16.9 命令的标准输出和标准错误输出

16.10 构建外部命令的管道

第17章 sbt

17.1 新建sbt项目

17.2 用sbt命令构建项目

17.3 了解build.sbt语法风格

17.4 编译、运行和打包Scala项目

17.5 其他sbt命令

17.6 持续的编译和测试

17.7 依赖管理

17.8 托管依赖的版本控制

17.9 API文档的生成

17.10 指定sbt运行的mainClass

17.11 部署一个可执行的JAR文件

17.12 发布类库

第18章 Scala Future和Akka actor的并发

18.1 创建Future

18.2 Future的回调和转换方法

18.3 返回Future的方法

18.4 多个Future的并行执行

18.5 创建面向对象风格的actor

18.6 创建函数式风格的actor

18.7 向actor发消息

18.8 创建有多种状态的actor

第19章 Play框架和Web服务

19.1 创建Play项目

19.2 创建Play的Web API

19.3 返回JSON的GET请求

19.4 将Scala对象序列化成JSON

19.5 将JSON反序列化成Scala对象

19.6 在非Play项目中使用Play JSON库

19.7 初识sttp

第20章 Apache Spark

20.1 初识Spark

20.2 将文件读入RDD

20.3 将CSV读入RDD

20.4 DataFrame

20.5 将数据文件读入DataFrame

20.6 针对多个文件的Spark SQL查询

20.7 Spark批处理程序

第21章 Scala.js、GraalVM和jpackage

21.1 初识Scala.js

21.2 使用Scala.js响应事件

21.3 使用Scala.js构建单页面应用

21.4 使用GraalVM构建原生的可执行文件

21.5 使用jpackage构建应用

第22章 Scala与Java集成

22.1 在Scala中使用Java的集合

22.2 在Java中使用Scala的集合

22.3 在Scala中使用Java的Optional值

22.4 在Java中使用Scala的Option值

22.5 在Java中使用Scala的特质

22.6 在Scala中使用Java的接口

22.7 @throws注解

22.8 @varargs注解

22.9 @SerialVersionUID和其他注解

第23章 类型

23.1 泛型方法

23.2 泛型类

23.3 不可变泛型参数的协变

23.4 元素类型可变化的类

23.5 类的泛型类型边界

23.6 duck类型(结构化类型)

23.7 不透明类型与类型名称

23.8 given和using的术语推断

23.9 并集类型与动态类型

23.10 类型的组合

23.11 通过跨界相等性比较类

23.12 CanEqual类型族

第24章 最佳实践

24.1 纯函数

24.2 不可变量与集合

24.3 表达式

24.4 match表达式与模式匹配

24.5 消除null值

24.6 Option、Try和Either

24.7 构建模块化系统

24.8 高阶函数与Option值

作者简介

封面简介

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

发表评论

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

买过这本书的人还买过

读了这本书的人还在读

回顶部