📚 《快学 Scala》纸质实体书免费送啦!

本贴最后更新于 2859 天前,其中的信息可能已经时移俗易

** 有需要该书的朋友请回帖沟通寄送方式,谢谢!**

快学 Scala

快学 Scala 快学 Scala

作者

  • [美] C. S. 霍斯曼

Cay S. Horstmann 是《Java 核心技术》卷 1 和卷 2 第 8 版(Sun Microsystems Press 出版社 2008 年出版)的主要作者,除此之外还著有其他十多本面向专业程序员和计算机科学专业学生的书籍。他是 San Jose 州立大学计算机科学专业的教授,同时是一位 Java Champion。

译者

  • 高宇翔

内容简介

Scala 是一门以 Java 虚拟机(JVM)为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在一起的编程语言。你可以使用 Scala 编写出更加精简的程序,同时充分利用并发的威力。由于 Scala 运行于 JVM 之上,因此它可以访问任何 Java 类库并且与 Java 框架进行互操作。本书从实用角度出发,给出了一份快速的、基于代码的入门指南。Horstmann 以“博客文章大小”的篇幅介绍了 Scala 的概念,让你可以快速地掌握和应用。实际上手的操作,清晰定义的能力层次,从初级到专家级,全程指导。

本书适合有一定的 Java 编程经验、对 Scala 感兴趣,并希望尽快掌握 Scala 核心概念和用法的开发者阅读。

目录

目录

前言
关于作者
1 基础 [A1]
1.1 Scala 解释器
1.2 声明值和变量
1.3 常用类型
1.4 算术和操作符重载
1.5 调用函数和方法
1.6 apply 方法
1.7 Scaladoc
练习
2 控制结构和函数 [A1]
2.1 条件表达式
2.2 语句终止
2.3 块表达式和赋值
2.4 输入和输出
2.5 循环
2.6 高级 for 循环和 for 推导式
2.7 函数
2.8 默认参数和带名参数 [L1]
2.9 变长参数 [L1]
2.10 过程
2.11 懒值 [L1]
2.12 异常
练习
3 数组相关操作 [A1]
3.1 定长数组
3.2 变长数组:数组缓冲
3.3 遍历数组和数组缓冲
3.4 数组转换
3.5 常用算法
3.6 解读 Scaladoc
3.7 多维数组
3.8 与 Java 的互操作
练习
4 映射和元组 [A1]
4.1 构造映射
4.2 获取映射中的值
4.3 更新映射中的值
4.4 迭代映射
4.5 已排序映射
4.6 与 Java 的互操作
4.7 元组
4.8 拉链操作
练习
5 类 [A1]
5.1 简单类和无参方法
5.2 带 getter 和 setter 的属性
5.3 只带 getter 的属性
5.4 对象私有字段
5.5 Bean 属性 [L1]
5.6 辅助构造器
5.7 主构造器
5.8 嵌套类 [L1]
练习
6 对象 [A1]
6.1 单例对象
6.2 伴生对象
6.3 扩展类或特质的对象
6.4 apply 方法
6.5 应用程序对象
6.6 枚举
练习
7 包和引入 [A1]
7.1 包
7.2 作用域规则
7.3 串联式包语句
7.4 文件顶部标记法
7.5 包对象
7.6 包可见性
7.7 引入
7.8 任何地方都可以声明引入
7.9 重命名和隐藏方法
7.10 隐式引入
练习
8 继承 [A1]
8.1 扩展类
8.2 重写方法
8.3 类型检查和转换
8.4 受保护字段和方法
8.5 超类的构造
8.6 重写字段
8.7 匿名子类
8.8 抽象类
8.9 抽象字段
8.10 构造顺序和提前定义 [L3]
8.11 Scala 继承层级
8.12 对象相等性 [L1]
练习
9 文件和正则表达式 [A1]
9.1 读取行
9.2 读取字符
9.3 读取词法单元和数字
9.4 从 URL 或其他源读取
9.5 读取二进制文件
9.6 写入文本文件
9.7 访问目录
9.8 序列化
9.9 进程控制 [A2]
9.10 正则表达式
9.11 正则表达式组
练习
10 特质 [L1]
10.1 为什么没有多重继承?
10.2 当作接口使用的特质
10.3 带有具体实现的特质
10.4 带有特质的对象
10.5 叠加在一起的特质
10.6 在特质中重写抽象方法
10.7 当作富接口使用的特质
10.8 特质中的具体字段
10.9 特质中的抽象字段
10.10 特质构造顺序
10.11 初始化特质中的字段
10.12 扩展类的特质
10.13 自身类型 [L2]
10.14 背后发生了什么
练习
11 操作符 [L1]
11.1 标识符
11.2 中置操作符
11.3 一元操作符
11.4 赋值操作符
11.5 优先级
11.6 结合性
11.7 apply 和 update 方法
11.8 提取器 [L2]
11.9 带单个参数或无参数的提取器 [L2]
11.10 unapplySeq 方法
练习
12 高阶函数 [L1]
12.1 作为值的函数
12.2 匿名函数
12.3 带函数参数的函数
12.4 参数(类型)推断
12.5 一些有用的高阶函数
12.6 闭包
12.7 SAM 转换
12.8 柯里化
12.9 控制抽象
12.10 return 表达式
练习
13 集合 [A2]
13.1 主要的集合特质
13.2 可变和不可变集合
13.3 序列
13.4 列表
13.5 可变列表
13.6 集
13.7 用于添加或去除元素的操作符
13.8 常用方法
13.9 将函数映射到集合
13.10 化简、折叠和扫描 [A3]
13.11 拉链操作
13.12 迭代器
13.13 流 [A3]
13.14 懒视图
13.15 与 Java 集合的互操作
13.16 线程安全的集合
13.17 并行集合
练习
14 模式匹配和样例类 [A2]
14.1 更好的 switch
14.2 守卫
14.3 模式中的变量
14.4 类型模式
14.5 匹配数组、列表和元组
14.6 提取器
14.7 变量声明中的模式
14.8 for 表达式中的模式
14.9 样例类
14.10 copy 方法和带名参数
14.11 case 语句中的中置表示法
14.12 匹配嵌套结构
14.13 样例类是邪恶的吗?
14.14 密封类
14.15 模拟枚举
14.16 Option 类型
14.17 偏函数 [L2]
练习
15 注解 [A2]
15.1 什么是注解?
15.2 什么可以被注解?
15.3 注解参数
15.4 注解实现
15.5 针对 Java 特性的注解
15.5.1 Java 修饰符
15.5.2 标记接口
15.5.3 受检异常
15.5.4 变长参数
15.5.5 JavaBeans
15.6 用于优化的注解
15.6.1 尾递归
15.6.2 跳转表的生成和内联
15.6.3 可省略方法
15.6.4 基本类型的特殊化
15.7 用于错误和警告的注解
练习
16 XML 处理 [A2]
16.1 XML 字面量
16.2 XML 节点
16.3 元素属性
16.4 内嵌表达式
16.5 在属性中使用表达式
16.6 特殊节点类型
16.7 类 XPath 表达式
16.8 模式匹配
16.9 修改元素和属性
16.10 XML 变换
16.11 加载和保存
16.12 命名空间
练习
17 类型参数 [L2]
17.1 泛型类
17.2 泛型函数
17.3 类型变量界定
17.4 视图界定
17.5 上下文界定
17.6 Manifest 上下文界定
17.7 多重界定
17.8 类型约束 [L3]
17.9 型变
17.10 协变和逆变点
17.11 对象不能泛型
17.12 类型通配符
练习
18 高级类型 [L2]
18.1 单例类型
18.2 类型投影
18.3 路径
18.4 类型别名
18.5 结构类型
18.6 复合类型
18.7 中置类型
18.8 存在类型
18.9 Scala 类型系统
18.10 自身类型
18.11 依赖注入
18.12 抽象类型 [L3]
18.13 家族多态 [L3]
18.14 高等类型 [L3]
练习
19 解析 [A3]
19.1 文法
19.2 连结解析器操作
19.3 解析器结果变换
19.4 丢弃词法单元
19.5 生成解析树
19.6 避免左递归
19.7 更多的连结符
19.8 避免回溯
19.9 记忆式解析器
19.10 解析器说到底是什么?
19.11 正则解析器
19.12 基于词法单元的解析器
19.13 错误处理
练习
20 Actor [A3]
20.1 创建和启动 actor
20.2 发送消息
20.3 接收消息
20.4 向其他 actor 发送消息
20.5 消息通道
20.6 同步消息和 Future
20.7 共享线程
20.8 actor 的生命周期
20.9 将多个 actor 链接在一起
20.10 actor 的设计
练习
21 隐式转换和隐式参数 [L3]
21.1 隐式转换
21.2 利用隐式转换丰富现有类库的功能
21.3 引入隐式转换
21.4 隐式转换规则
21.5 隐式参数
21.6 利用隐式参数进行隐式转换
21.7 上下文界定
21.8 类型证明
21.9 @implicitNotFound 注解
21.10 CanBuildFrom 解读
练习
22 定界延续 [L3]
22.1 捕获并执行延续
22.2 “运算当中挖个洞”
22.3 reset 和 shift 的控制流转
22.4 reset 表达式的值
22.5 reset 和 shift 表达式的类型
22.6 CPS 注解
22.7 将递归访问转化为迭代
22.8 撤销控制反转
22.9 CPS 变换
22.10 转换嵌套的控制上下文
练习
索引

其他

  • 出版社:电子工业出版社
  • 副标题:
  • 原作名:Scala for the Impatient
  • 出版年:2012-10
  • 总页数:408
  • 定 价:79.00 元
  • 装 帧:平装
  • ISBN:9787121185670

关于『书单』

书单是黑客派社区的一个纸质书共享活动,所有书均来自捐赠,原则上当前的书籍持有者有义务将书寄送给需要的会员。我们鼓励你在书籍上留下笔迹,任何信息都行,让其他人可以看到一些有意思的内容也是蛮不错的 😅

共享意味着什么

一旦你共享了一本书,就会使用你的社区账号自动发一篇书籍共享帖,这意味着你做了一个承诺:将书送到需要的人手中。如果有同城的书籍需求者回帖,就面交吧!

如何参与

  1. 使用微信扫描如下二维码,进入黑客派社区小程序
    3c04bd33b54a493aa97107a94a1ae706.png
  2. 按照小程序的指引开始即可

一点思考

类似共享书籍的事情有很多人做过,比如:

  • 摆摆书架
  • 青番茄
  • 书巢
  • 丢书大作战
  • 很多社区的书籍交换

大家的出发点都是想让这个世界变得更好。黑客派的『书单』将作为长期活动持续下去,大家随时都能参与进来,让你我的生活变得更丰富有趣!

  • 书单

    『书单』是 [黑客派] 社区的纸质书共享计划第一版,目前已经下线。其升级版『链书』基于区块链的技术,实现去中心化的货币 + 去中心化的图书馆,已于 2018 年 6 上线。

    77 引用 • 638 回帖 • 493 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 138 关注
  • 编程
    53 引用 • 266 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...